Delirios de un Informático

WordPress Plugin Feed

Los programadores que trabajamos con WordPress debemos estar informados de las actualizaciones de los plugins que utilizamos. El problema es que aunque los plugins son de código abierto y Automattic proporciona una herramienta para bucear por su código, no proporciona ningún feed decente. Por ejemplo:

Por eso he creado una pequeña herramienta llamada WordPress Plugin Feed que se encarga de obtener toda la información disponible de cada release de un plugin para generar un feed que permite mantenerse actualizado sin tener que acudir al panel de control de WordPress o a la ficha de cada plugin en WordPress.org.

Cada release mostrará:

  • Lista completa de cambios en formato legible
  • Fecha precisa (basada en los commits de Subversion)
  • Enlace a la lista de cambios entre versiones en Subversion
  • Actualizaciones de seguridad destacadas

El código está disponible en GitHub y se permiten pull requests….

Cómo usar Twitter Tools con la extensión OAuth de PECL

Un plugin para WordPress muy utilizado últimamente es Twitter Tools, del famoso Alex King. El problema es que si tienes el blog alojado en un servidor que disponga de la extensión OAuth de PECL te encontrarás con un bonito error al intentar conectar con Twitter:

Fatal error: Class 'OAuthSignatureMethod_HMAC_SHA1' not found

Se debe a que se comprueba de forma incorrecta la existencia de las clases necesarias, no incluyendo las necesarios en caso de que no existan. Como he leido cosas como que se recomienda solicitar que se deshabilite la extensión de PHP, he pensado que es mejor crear este pequeño plugin para WordPress que complemente la extensión PECL añadiendo lo necesario para que funcione correctamente Twitter Tools sin necesidad de deshabilitar la extensión ni hacer cosas extrañas. Para hacerlo funcionar, basta con subirlo al directorio wp-content/plugins y habilitarlo desde el panel de control como cualquier otro plugin.

Cómo añadir soporte para widgets y menús a tu tema de WordPress

Hace ya bastante que migré mi blog a WordPress desde mi viejo CMS basado en Bitacorae, pero la adaptación del tema la hice de forma muy básica, simplemente realizando una traducción de mis clases y funciones al API de WordPress. Pero ahora resulta útil gestionar la barra lateral y otras secciones fijas mediante los widgets y menús que proporciona WordPress. Para eso, es necesario crear el archivo functions.php en la raiz del tema con el siguiente contenido:

<?php

/**
 * Configuracion del tema
 */
function mytheme_setup()
	{
	// soporte para menu superior
	$params = array
		(
		'primary' => 'Principal',
		);
	
	register_nav_menus($params);

	// soporte para sidebar principal
	$params = array
		(
		'name'			=> 'Area principal',
		'id'			=> 'area-widgets-principal',
		'description'	=> 'Area princial de widgets',
		'before_widget' => '<div id="%1$s" class="widget %2$s">',
		'after_widget'	=> '<div class="clear"></div></div>',
		'before_title'	=> '<h3 class="titulo-widget">',
		'after_title'	=> '</h3>'
		);
	
	register_sidebar($params);

	// soporte para sidebar secundario
	$params = array
		(
		'name'			=> 'Area secundaria',
		'id'			=> 'area-widgets-secundaria',
		'description'	=> 'Area secundaria de widgets',
		'before_widget' => '<div id="%1$s" class="widget %2$s">',
		'after_widget'	=> '<div class="clear"></div></div>',
		'before_title'	=> '<h3 class="titulo-widget">',
		'after_title'	=> '</h3>'
		);
	
	register_sidebar($params);
	}

// configuracion del tema
add_action('after_setup_theme', 'mytheme_setup');

Pueden añadirse tantas áreas como se deseen, ya que tienen una especial utilidad (por lo menos para mí) para mostrar diferentes menús según en donde se encuentre el visitante. Yo he optado por generar dos áreas, una para la portada del blog y otra para las páginas interiores, ya que en estas últimas no es necesario mostrar todo el contenido que publico en Twitter/Flickr/Tumblr. Para añadir las áreas de widgets al sidebar, basta el siguiente código:

<?php dynamic_sidebar(is_home() ? 'area-widgets-principal' : 'area-widgets-secundaria'); ?>

El soporte para menús también es sencillo, basta añadir al archivo header.php (o donde proceda):

<?php wp_nav_menu(array('container_class'=>'menu-header', 'theme_location'=>'primary')); ?>

Una vez realizados estos cambios, se podrán gestionar los menús y los widgets desde la sección Apariencia del panel de WordPress.