WordPress: no sólo blogs

Con ocasión del WordCamp Chile 2010, junto a Basilio Cáceres preparamos una presentación sobre nuestras razones para utilizar WordPress en sitios dedicados principalmente a la publicación de contenidos en estructuras más complejas que un blog.

La presentación no es tanto técnica sino más bien estratégica, y expande lo que hace algunos meses Basilio había identificado como tres razones para desarrollar sitios web sobre WordPress: experiencia de uso, extensibilidad y comunidad.

Continue reading “WordPress: no sólo blogs”

Usando la API de Transients en WordPress

WordPress tiene varias API’s muy interesantes y prácticas, aunque no todas ellas son igual de conocidas.

Una de las que he venido a conocer más recientemente es la API de Transients, que permite trabajar con datos temporales de un modo simple y estándar, lo que resulta ideal si quieres crear una caché de datos con un tiempo de expiración, por ejemplo, al realizar consultas muy complejas a la base de datos o al obtener datos desde una fuente externa.

Esta API trabaja de forma muy similar al API de opciones, pero con el agregado de un tiempo de expiración de los datos, tras el cual WordPress eliminará la información almacenada en la base de datos. En nuestro plugin/widget/clase/función podremos implementar los métodos necesarios para chequear si existe el contenido cacheado o bien refrescar los datos, según sea necesario. La API implementa tres funciones que nos permiten guardar, obtener, o eliminar los datos, respectivamente:

/**
 * Guardar datos a la base de datos
 * @param string $transient Nombre del transient
 * @param mixed $value Datos que se guardarán. WordPress detecta si es un string o datos más complejos, y en este caso los guardará automáticamente como datos serializados
 * @param int $expiration El tiempo de expiración, en segundos.
 * @return boolean Verdadero o falso, de acuerdo a si la operación se ha realizado
 **/
set_transient($transient, $value, $expiration);

/**
 * Obtener datos
 * @param $transient string Nombre del transient.
 * @return mixed Los datos del transient, ya sea como string, como array u objeto si eran datos serializados, o bien falso si los datos no existen.
 **/
get_transient($transient);

/**
 * Borrar datos, para cuando se quieran borrar antes del tiempo de expiración
 * @param $transient string Nombre del transient
 * @return boolean Verdadero o falso, de acuerdo a si la operación se ha realizado
 **/
delete_transient($transient);

De este modo, en nuestro plugin/widget/función/etc. sólo nos bastará comprobar si los datos ya existen y refrescarlos en caso que sea necesario:

function mi_funcion(){
	global $wpdb;
	$transient_data = get_transient('mis_datos');
	if ( ! $transient_data ) {
		// Obtener los datos
		$get_data =  json_decode( file_get_contents( 'http://search.twitter.com/search.json?q=from%3Afelipelavinz' ) );
		// Guardarlos en el transient
		if ( set_transient('mis_datos', $get_data, 3600) ) $transient_data = $get_data;
	}
	foreach ( $transient_data as $key=>$val ) {
		// Procesar los datos
	}
}

Una buena manera de mejorar la performance de tus plugins/widgets/funciones.

7 años (y algo más)

Hace algo más de siete años (Agosto del 2003, para ser más exacto) comencé un sitio web donde pensaba ir escribiendo notas breves sobre cuestiones diversas, ordenadas cronológicamente. En ese entonces, recién se hablaba de blogs, y más que las redes profesionales de blogs, la presencia más importante la tenían personas (lo que hacía ciertamente más interesante el formato), algunos de los cuales aún continúan vigentes, como Eduardo Arcos (cuando su ALT1040 aún era su blog personal), Mariano Amartino, Antonio Cambronero o Diego Martín Lafuente.

Por estos días, los blogs han sido sucedidos por múltiples herramientas más nuevas, y a pesar de que se ha decretado su muerte una y otra vez, el formato sigue vivo y tal parece que su verdadero impacto cultural aún está en pleno desarrollo. El proceso de tomar y retomar y retomar la publicación de nuevas entradas en este blog se ha convertido en un ritual errático pero siempre presente… en esta oportunidad se siente casi como empezar desde cero, tanto por todas las cosas que debía haber publicado pero las tenía pendientes, como por la intención de continuar el blog en torno a dos direcciones que ojalá logre compatibilizar, mezclando las notas técnicas con los comentarios más generales y analíticos… al menos esa es la intención.

Además estreno nuevo diseño, que en esta oportunidad estuvo a cargo de la talentosa Estefanía Trisotti (¡gracias!)

Así que menos parloteo, y a continuar… gracias a todos los que siguen por acá y a los que vienen llegando también.

Música chilena al 20%

… ¿No es, acaso, bastante distinto decir mayor difusión de la música chilena, que mayor subvención económica a los músicos chilenos?

¿No es ceguera ignorar que la industria de la música cambió? ¿No es ficción creer que, por unas pasadas más en las radios, la música chilena será de mayor calidad, los músicos tendrán más facilidades para editar discos, podrán integrarse a la era digital, y tendrán más y mejores lugares para tocar a lo largo de Chile?

Gabriel Polgati en Rolling Stone Octubre 2010, p. 19