Tu propio widget de noticias en el escritorio en WordPress

ultimas noticias wordpress

¿Te has fijado en que algunos plugins añaden un widget de noticias propio en el escritorio?, ¿te gustaría saber hacerlo?, pues la verdad es que es bastante sencillo, como casi todo en WordPress.

Es un elemento de branding estupendo para fidelizar clientes o simplemente para tener informados a tus usuarios registrados.

Solo hay que recurrir a nuestro ya célebre plugin de funciones, o sino al fichero functions.php del tema activo y añadir lo siguiente:

// Widget de Escritorio personalizado
add_action('wp_dashboard_setup', 'my_dashboard_widgets');
function my_dashboard_widgets() {
     global $wp_meta_boxes;
     // quita widgets innecesarios, y principalmente los widgets de noticias, pues ya está el tuyo
     // var_dump( $wp_meta_boxes['dashboard'] ); // se usa para obtener todos los ID de los widgets
     unset(
          $wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins'],
          $wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary'],
          $wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']
     );
     // añade el widget propio de escritorio
     wp_add_dashboard_widget( 'dashboard_custom_feed', 'Lo último sobre WordPress', 'dashboard_custom_feed_output' ); //añade una nueva fuente RSS
}
function dashboard_custom_feed_output() {
     echo '<div class="rss-widget">';
     wp_widget_rss_output(array(
          'url' => 'http://feeds.feedburner.com/AyudaWordPress',
          'title' => 'Lo último sobre WordPress',
          'items' => 3,
          'show_summary' => 1,
          'show_author' => 0,
          'show_date' => 1
     ));
     echo "</div>";
}

Queda así de chulo …

Cómo no, lo tendrás que personalizar, cambiando la “url” por el feed RSS que quieras, los “items” al número de entradas que mostrará por defecto, si quieres mostrar un extracto de cada entrada (“summary“), el autor (“author“) o la fecha (“date“), y por supuesto el título que aparecerá en la lista de widgets disponibles y también en el del Widget.

Ah, en el código, por defecto se anulan los demás widgets de noticias, para que solo esté disponible el tuyo. Si quieres eliminas las líneas relativas al “unset”.

Espero que te guste, yo lo uso siempre para todos los desarrollos de clientes, es muy agradecido.

Importa a WordPress cualquier web

Supongo que ya sabrás que WordPress dispone de importadores para muchos sistemas de gestión de contenidos, incluso desde un canal RSS, pero hay veces que lo que queremos importar es una web que no tiene ningún tipo de base de datos o sistema exportable.

También tenemos problemas cuando la vieja web usa un CMS incompatible con casi todo, o versiones antiguas que no reconocen los importadores.

En esas ocasiones, dejando aparte la tediosa tarea de crear páginas a mano y esas cosas indeseables por lo lentas, tenemos una salvación.

Y esta salvación viene en forma de plugin, URL cloner, una pequeña maravilla que permite importar a WordPress contenido de cualquier URL ¿alguien da más?.

URL cloner usa la API de ClearRead y permite el tipo de entrada, estado de publicación, categoría, autor, incluso fecha de publicación original de la URL que vayas a clonar.

¿Pegas?, pues si, tiene una, y es que de momento solo permite clonar una URL cada vez, con lo que el proceso puede parecer un pelín tedioso si tuvieses muchas páginas en la vieja web, pero hacer el trabajo lo hace y bien en la mayoría de las ocasiones. Yo lo he probado con una web hecha en HTML, con 20 páginas, y ha hecho bien la tarea, más rápido con diferencia que si hubiese tenido que crear páginas o entradas por mi cuenta copiapegando contenido.

Mostrar RSS feed en una entrada de WordPress

De verdad que esto no lo he usado nunca, de hecho ni se me ocurre para qué pueda servir, pero seguro que tu le encuentras utilidad.

Me refiero a que, mediante un shortcode puedas mostrar en cualquier parte de una entrada enlaces a publicaciones de un feed RSS.

Si te animas el truco está en añadir este código al fichero functions.php de tu tema (como siempre) o a tu plugin de funciones:

//Es imprescindible que exista ese fichero para poder llamar a la función wp_rss().
include_once(ABSPATH.WPINC.'/rss.php');

function ver_RSS($atts) {
    extract(shortcode_atts(array(
	"feed" => 'http://',
      "num" => '1',
    ), $atts));

    return wp_rss($feed, $num);
}

add_shortcode('rss', 'ver_RSS');

Luego solo tienes que usar el nuevo shortcode de este modo:

[rss feed="http://feeds.feedburner.com/AyudaWordPress" num="3"]

La variable “num” la decides tu con el número de enlaces que se visualizarán.

¡Ah!, y si se te ocurre una situación (razonable) para usar este truco me lo cuentas, que no lo pillo, hoy debo estar espeso.

Añade cualquier cosa al final de las entradas

A estas alturas ya sabrás lo engorroso que es, cuando cambias de tema en WordPress, ir recuperando todos esos códigos que has insertado en los distintos ficheros del tema anterior para que también estén en el nuevo.

Por supuesto, un modo de evitar este molesto proceso es el uso de plugins para la mayoría de las cosas pero no siempre es una opción válida.

Una de estas situaciones, muy típicas, es esos códigos que añadimos al final de nuestras entradas, ya sean scripts de Adsense, códigos donde se cuenta quien ha escrito la entrada, textos para animar a suscribirse al feed RSS, para seguirnos en Twitter o cualquier cosa que se te ocurra.

Normalmente, para esto, editamos el fichero single.php del tema y añadimos ahí lo que sea, pero para tenerlo más ordenado lo haremos de manera más elegante.

Es en estos casos cuando lo mejor es usar nuestro plugin de funciones, o editar el fichero functions.php del tema, que luego podremos usar en el nuevo.

El código a añadir sería algo así:

// Código/texto al final de las entradas en single
function texto_al_final($content) {
	if (is_single()) {
		$content .= '<p><div id="caja-suscribir-post">Si no te quieres perder nada suscríbete a <a title="Suscríbete a Ayuda WordPress" href="http://feeds.feedburner.com/ayudawordpress">Ayuda WordPress</a></div></p>';
	}
	return $content;
}

add_filter ('the_content', 'texto_al_final', 0);

Luego, por supuesto, lo “tuneas” a tu gusto.

Excluir artículos del feed de WordPress

Hace ya tiempo que vimos como excluir categorías del feed RSS pero ¿y si lo que quieres es excluir solo ciertos artículos?, que esas entradas que no aportan nada a tus suscriptores, vayan en la categoría que vayan.

Pues se puede …

De nuevo recurriremos al plugin de funciones, o el archivo functions.php para añadirle este código:

// Excluir posts del feed por ID
function excluir_posts_feed($where, $wp_query = NULL) {
	global $wpdb;
	if ( !$wp_query )
		global $wp_query;
	if ($wp_query->is_feed) {
		// excluye los posts con ID 145 y 657
		$where .= " AND $wpdb->posts.ID NOT IN (144, 657)";
	}
	return $where;
	}
add_filter( 'posts_where','excluir_posts_feed', 1, 2 );

Como ya imaginas tienes que adaptarlo a tus necesidades, eligiendo los ID de las entradas que quieres excluir en vez de los del ejemplo y, más adelante, ir añadiendo los que quieras seguir excluyendo.

Cambiar enlaces de tu RSS a Feedburner

No hace falta que me repita, porque ya he explicado varias veces las ventajas de usar un servicio como Feedburner para gestionar nuestros RSS en vez de los feeds por defecto, así que iré directamente al grano.

Cuando ya tienes un RSS de Feedburner lo siguiente es ofrecerlo a tus visitantes, y para eso tienes que hacer un par de cosas, a saber …

  1. Anunciarlo bien, quizás en tu barra lateral, con un enlace e icono bien clarito
  2. Cambiar los enlaces a los feeds por defecto para que dirijan a tus visitantes al RSS de Feedburner

Para lo primero no hay prácticamente opciones, creas un widget o similar y lo pones a tu gusto, pero para lo segundo ya tenemos varias posibilidades, vamos a verlas todas …

1. Plugin

Lo primero que se os ocurre a muchos es instalar un plugin que haga el cambio por nosotros, lo que no es mala opción, y de paso nos evitamos tener que tocar código, y además funcionará aunque cambiemos de tema en nuestro WordPress, que por si solo ya es un muy buen argumento.

Para esta utilidad hay muchos, y quizás el más utilizado es FD Feedburner, aunque siempre puedes usar el oficial de Google.

2. Modificar el tema

Esta opción, aunque asuste a los más nuevos en esto del desarrollo, en realidad es muy sencilla y apta para todos los públicos. La principal ventaja es que no tienes que instalar un plugin, con el consiguiente ahorro en consumo de recursos, para algo tan simple como una redirección que puedes hacer tu mismo en unos segundos.

El proceso es muuuuy sencillo, pero hay 2 posibilidades …

A: Enlace en la cabecera del tema

  1. Abres el fichero header.php de tu tema activo
  2. Localizas las líneas de código para la suscripción al feed, como esta:
    <link rel="alternate" type="application/rss+xml" title="<?php bloginfo('name'); ?> RSS Feed" href="<?php bloginfo('rss2_url'); ?>" />
  3. Lo sustituyes por algo así:
    <link rel="alternate" type="application/rss+xml" title="<?php bloginfo('name'); ?> RSS Feed" href="http://feeds.feedburner.com/AyudaWordPress" />

    Simplemente cambia la URL del RSS de Feedburner de Ayuda WordPress (http://feeds.feedburner.com/AyudaWordPress) por el tuyo.

B: Función que genera los enlaces en la cabecera

Esta opción, disponible desde WordPress 3.0, la encontrarás en temas tan comunes como el mismo Twenty Eleven. En este caso no encontrarías los enlaces de antes en el fichero header.php, sino que tendrías que buscar en otro archivo, en functions.php del mismo tema este código:

add_theme_support( 'automatic-feed-links' );

Pues bien, si este es el caso lo que tienes que hacer es esto (también sencillo):

  1. Borras la línea anterior del fichero ‘functions.php
  2. Añades la siguiente línea al fichero ‘header.php‘ de tu tema
    <link rel="alternate" type="application/rss+xml" title="<?php bloginfo('name'); ?> RSS Feed" href="http://feeds.feedburner.com/AyudaWordPress" />

De nuevo, sustituye mi RSS de Feedburner por el tuyo y ya está.

3. Función que sustituya los RSS por los de Feedburner

Para mi la opción más elegante, a la par de resultona. Y es que, además de que no consume recursos, con este método tampoco tienes que acordarte si cambias de tema.

Aquí echaremos mano de nuestro archivo functions.php, o si lo prefieres de tu plugin de Funciones, opción con la que no tendrías que acordarte si cambias de tema, y simplemente le añadimos estas líneas:

// Redirigir feeds a Feedburner en el tema
add_action('template_redirect', 'redirige_rss_feedburner');
function redirige_rss_feedburner() {
        if ( is_feed() && !preg_match('/feedburner|feedvalidator/i', $_SERVER['HTTP_USER_AGENT'])){
                header('Location: http://feeds.feedburner.com/AyudaWordPress');
                header('HTTP/1.1 302 Temporary Redirect');
        }
}

De nuevo pones la URL de tu Feedburner, guardas los cambios y a correr.

¿Cual te parece mejor opción y, sobre todo, por qué?

Take Our Poll

Mostrar imágenes destacadas en el feed

Con lo difícil que es actualmente destacar entre la gran cantidad de contenidos que hay en la red, cada vez cuesta más atraer lectores, no digamos fidelizarlos.

Si a esto le unimos que si tu web es de una temática muy concreta lo más seguro es que ni siquiera te visiten vía web sino a través de un lector de RSS (bastante habitual aquí en Ayuda WordPress), no se si te ha pasado por la cabeza pensar en la inutilidad del diseño en la web, de preocuparse de buscar un buen tema, de poner imágenes destacadas y esas cosas. A mi si, muchas veces.

Pero bueno, como aquí estamos para dar soluciones vamos al grano, en este caso para atraer a los suscriptores por RSS – o futuribles – a leer nuestro feed en vez de otros, gracias a la funcionalidad de WordPress de imágenes destacadas

Y es que por mucho que nos empleemos en ilustrar bien nuestro contenido, si nos leen por RSS perdemos diseño, la funcionalidad de muchos plugins y, por supuesto, esa cosa tan chula que supone para embellecer nuestras publicaciones que es las imágenes destacadas.

Si publicas tu feed completo olvida este truco, pero si ofreces solo el extracto del RSS y quieres dar mayor atractivo y que visiten tu web para ver el contenido completo, entonces tiene todo el sentido aprovechar las imágenes destacadas para animarles visualmente a hacerlo.

Y conseguirlo es bien fácil, solo tienes que añadir este código a tu plugin de Funciones:

// Mostrar miniatura de imagen destacada en el feed
add_filter('the_content_feed', 'imagen_destacada_rss');
function imagen_destacada_rss($content) {
        global $post;
        if( has_post_thumbnail($post->ID) )
                $content = '<p>' . get_the_post_thumbnail($post->ID, 'thumbnail') . '</p>' . $content;
        return $content;
}

Guardas los cambios y ya lo tienes, incluso puedes añadir algo de HTML por tu cuenta y mostrar algún enlace, lo que se te ocurra.

En el código anterior se mostrará la miniatura antes del extracto del texto, si prefieres que se añada después debes cambiar esta línea:

$content = $content . '<div>' . get_the_post_thumbnail($post->ID) . '</div>';

Y si prefieres que el texto envuelva a la imagen destacada en miniatura entonces esa misma línea quedaría así:

$content = get_the_post_thumbnail($post->ID) . $content;

Si te fijas simplemente jugamos con la posición del div, o lo quitamos (en la última opción).

Otra personalización que puedes hacer es modificar el tamaño de la imagen mostrada. En el ejemplo he usado el de miniatura (thumbnail) pero puedes cambiarlo a ‘medium‘, ‘large‘ o incluso a tamaño completo (full), eso ya es cuestión de probar cual se ajusta mejor, y también depende de como tengas configurados los tamaños de imagen en los ajustes multimedia de tu WordPress.

Y creo que ya no me dejo nada. Solo debes acordarte de siempre definir una imagen destacada en tus entradas, por supuesto, sino no se mostrará nada, que WordPress es listo pero el plugin de intuir tus intenciones aún no está disponible ;)

Nota: este código solo afecta a los feeds por defecto, si usas Feedburner o similares es bastante probable que no funcione pues utilizan sistemas distintos

De WordPress a tu página de Facebook en un clic

Pues ¡ea, aquí está!. Ya sé que lo venís pidiendo desde hace mucho tiempo, y ya hablamos de lo fácil que es en WordPress.com, pero es que Facebook cambia tanto que lo que valía como solución un día al siguiente ya no estaba disponible o no funcionaba bien.

Me refiero, lógicamente a como enviar automáticamente lo que publicas en WordPress a tu página de Facebook. Y la verdad es que hay muchas maneras de hacerlo, pero he buscado las que cumplieran algunos requisitos:

  • Posibilidad de personalización
  • Poder elegir en qué página se publicarán tus nuevas entradas
  • Automatismo
  • Que no sea plugin de WordPress para no sobrecargar nuestro CMS

Y las opciones más interesantes son estas dos:

1. RSS Graffiti

Esta aplicación es bastante veterana pero sigue funcionando de maravilla. Para empezar solo tienes que ir a la página oficial, aceptar los consiguientes permisos de Facebook para que le permita publicar en tu nombre, y luego ya puedes empezar a configurar tus páginas, perfiles, lo que sea, para publicar en los mismos cualquier fuente que tenga un RSS feed.

En este sentido, el hecho de usar feeds RSS, es la más versátil, ya que sus posibilidades son enormes a la hora de mantener un perfil o página de Facebook con actualizaciones constantes, y lo que es mejor, sin tener que estar todo el día metido en Facebook. Yo es la que uso para casi todas mis páginas y perfiles (que son unos cuantos). Muy recomendable.

Una vez dentro de la aplicación puedes configurar los feeds, como se verán, donde se verán, en nombre de quien se publicarán e incluso algunos elementos de su aspecto, la frecuencia de las publicaciones y más cosas. De verdad, muy completa.

2. PagePress

Esta aplicación de Facebook es más nueva, pero no por ello mejor la verdad. Eso si, es muy sencilla de usar. Solo tienes que lanzar la aplicación y luego en un par de preguntas – y clics – tienes tu WordPress publicado en la página de Facebook que quieras de entre las que administres.

Una vez terminado el proceso te crea una nueva pestaña en la página de Facebook, llamada Blog, donde se compartirá automáticamente todo lo que publiques en tu WordPress.

Sencilla, fácil de usar y una buena opción.

Nada más, que lo disfrutes.

Un shortcode para mostrar una caja de texto y otras entradas de Noviembre en Kebrantin

A continuación los posts que he publicado durante el mes de Noviembre de 2011 en Kebrantin.


Este blog pertenece a la red Blogpocket Multisite, donde puedes encontrar también: Mariposas en la maleta, Acordes Modernos y Cicuta en la sangre

WordPress 3.3 dejará de soportar feeds RSS 0.92 ni RDF

WordPress 3.3Se está retrasando unos días la versión 3.3 de WordPress que llegará con algunas novedades interesantes.

Para el cambio tendremos que tener en cuenta una serie de puntos. Los más importantes se detallan en 10 Things You Need to Know About WordPress 3.3. Pero uno de los más novedosos es que se dejará de soportar los anticuados formatos de feed RSS 0.92 y RDF.

Cada vez que se publica un post, WordPress genera todos los feeds, en todos los formatos posibles, automáticamente. Estos son: RSS 2.0, RSS 0.92, RDF y Atom, además del feed RSS 2.0 para los comentarios. A partir de la versión 3.3 solo se crearán los feeds RSS 2.0 y Atom.

Hay que tener en cuenta este cambio porque puede afectar a tus suscripciones. Si no utilizas FeedBurner, todos aquellos usuarios que estén suscritos a tus feeds RSS 0.92 y RDF no podrán leer tus contenidos. Si usas FeedBurner, simplemente deberás cambiar la los archivos en la configuración, si es que tuvieras asignado los uno de los dos formatos en cuestión. De esta forma, los suscriptores no advertirán ningún cambio ni tendrán que hacer nada.


Este blog pertenece a la red Blogpocket Multisite, donde puedes encontrar también: Mariposas en la maleta, Acordes Modernos y Cicuta en la sangre