Artículos de la categoría WordPress

Quality Control: Un theme para WordPress para gestionar nuestros proyectos

Preview de Quality ControlUno de los problemas a los que te enfrentas cuando llevas a cabo un proyecto es cómo recibir y gestionar las sugerencias y los problemas de los usuarios. Yo me he decantado por crear un foro sólo para dar soporte a mis proyectos, sin embargo vía Twitter descubro una forma algo más cómoda de llevar el avance de los proyectos.

Se trata de Quality Control, un theme para WordPress pensado especialmente para usarse para estos fines. Permite crear de una forma cómoda un sistema de gestión de tickets, ordenados por estados, categorías, etiquetas y ramas. Sin duda de lo más útil para gestionar los bugs que vayan apareciendo en nuestros proyectos.

Además de un excelente diseño y una gran utilidad, este theme tiene otro punto a su favor: es totalmente gratuito y podéis descargarlo gratis o ver la demo.

Comparte en Tuenti tus artículos de WordPress

Botones para compartir en TuentiHace algunos días Tuenti anunció un botón para compartir páginas web en la red social. La pega es que este botón no es tan automático como el de Twitter, y requiere algo más de esfuerzo añadirlo en nuestras páginas web, aunque no es para nada complicado. El botón es básicamente un enlace que contiene una imagen, creado con el siguiente código HTML:

<a href="http://www.tuenti.com/share?url=[URL_DE_NUESTRO_ARTICULO]" target="_blank">
<img src="[IMAGEN_DEL_BOTON]" />
</a>

La URL del enlace apunta a la página de compartir de Tuenti, donde [URL_DE_NUESTRO_ARTICULO] debe ser reemplazado por la URL de nuestro artículo codificada, o bien mediante la función Javascript encodeURIComponent() o bien mediante la función PHP urlencode().

La imagen del botón podemos elegirla nosotros, lo recomendable es usar algunas de las que ofrece Tuenti para no confundir a los usuarios, aunque también podemos crear las nuestras. Por último, los desarrolladores de Tuenti recomiendan que el enlace se abra en una nueva ventana, aunque quizás sería mejor abrir la ventana dentro de una ventana modal en nuestro propio blog, para así evitar tener que abrir una nueva pestaña.

Para añadir el botón de compartir a todos nuestros artículos basta con editar el archivo single.php de nuestro theme de WordPress y añadir en el lugar que queramos mostrar el enlace:

<a href="http://www.tuenti.com/share?url=<?php echo urlencode(get_permalink()); ?>" target="_blank">
 <img src="http://estaticosak1.tuenti.com/layout/web2-Zero/images/corporate/3_share_es_dark.59917.png" />
 </a>

El código simplemente muestra el enlace con el permalink del artículo cofidicado. La URL de la imagen que aparece en el código anterior es la misma que aparece en la página de desarrolladores de Tuenti, así que podéis usar esa o cambiarla por otra. No os recomiendo usar la que hay en el código de ejemplo porque tal vez la ruta a esa imagen cambien en algún tiempo y entonces os dejen de funcionar los botones de compartir.

También podéis añadir el botón a vuestras páginas, no sólo a los artículos, mediante el mismo código.

Theme Side Blog para WordPressHoy han publicado en Smashing Magazine una excelente recopilación de 100 estupendos themes gratuitos para WordPress. En la recopilación hay themes especialmente pensados para portafolios, para blogs, para tiendas,  para dispositivos móviles…

Si estáis buscando un buen theme para vuestro blog, revisad el artículo porque seguramente encontraréis alguno que os guste.

jCarousel, el nuevo StepCarousel de WP Carousel 0.6

WP Carousel 0.6Estos días he estado probando diversos scripts para crear carruseles y finalmente ya me he decidido por uno. El ganador ha sido jCarousel, un script de Jan Sorgalla que es realmente interesante. Para comenzar, es mucho más fácil de inicializar con pocas opciones de configuración, además de que permite más opciones que StepCarousel, como por ejemplo el tan pedido modo vertical o la posibilidad de elegir la animación que queramos para el carrusel.

Por otro lado, y en lo referente a fechas de lanzamiento, me temo que tardaré más de lo que esperaba en terminar WP Carousel 0.6, de hecho creo que durante unos cuantos días (sino unas semanas) voy a pararme un poco y pensar detenidamente cómo llevar a cabo las novedades que tenía planeadas, sobretodo el tema de la nueva API de themes y la posible nueva API de Extras.

Por último, la imagen que tenéis a la izquierda es una captura de la UI de WP Carousel 0.6 donde se ven los 3 principales cambios que tenía planeados: poder contraer los elementos del carrusel, mostrar una miniatura de la imagen que se mostrará en el carrusel (sólo páginas y artículos) y darle un nuevo aspecto a los checkboxes para hacerlos más entendibles (he optado por darles un aspecto similar a los botones del iPhone porque así podía mostrar un texto al estar activos y otro diferente al no estarlo).

WordPress 3.0.1 ya disponible

Desde anteayer está disponible la versión 3.0.1 de WordPress, que corrige 51 bugs no demasiado críticos. La única novedad más interesante para los desarrollares es que se ha añadido la función unregister_nav_menu(), que como su nombre indica, permite desregistrar un menú.

Podéis actualizar directamente desde el Panel de Administración o descargar la nueva versión.

Comienza el desarrollo de WP Carousel 0.6

No tenía pensado retomar el desarrollo de WP Carousel hasta finales de verano, pero durante estos días que he estado fuera he recibido muchas sugerencias sobre nuevas características, que sumadas a las que tenía en mente al liberar la versión 0.5 hacen que me decante por comenzar el desarrollo de la próxima versión hoy mismo. No me gusta dar fechas de lanzamiento, pero esta versión estará disponible antes de finales de verano, y la siguiente gran revisión tardará mucho en llegar (no tengo pensados grandes cambios después de estos).

En esta versión me centraré en la sección de opciones (veréis muchos cambios a nivel de usuario y otros tantos a nivel de desarrolladores) y en un nuevo motor para los carruseles. A continuación os resumo las principales novedades.

Detectar el último artículo del loop de WordPress

A veces nos interesa saber cuándo se está mostrando el primer o el último artículo del blog de WordPress para, por ejemplo, mostrar una línea de división en todos los artículos menos el último o destacar el primer artículo sobre los demás. Hay varias formas de contar los artículos que ya se han mostrado en el loop de WordPress, en este artículo me voy a centrar en la forma más sencilla que conozco: mediante $wp_query.

$wp_query es un objeto que contiene diversos métodos (funciones) y atributos (variables) acerca de las consultas a la Base de Datos (realmente contiene mucha información). Entre estos atributos hay dos que son los que utilizaremos y que nos facilitan mucho la tarea, se trata de: current_post y post_count. El primero indica cuál es la iteración (repetición) actual del bucle, mientras que el segundo indica el total de artículos que se mostrarán. Es decir, el primero nos dice cuántos artículos se han mostrado ya y el segundo nos indica el total de veces que se ejecutará el bucle.

Con ambos datos tenemos suficiente como para saber cuándo se está mostrando el primer y el último artículo. Lo único que tenemos que tener en cuenta es que current_post comienza en 0, mientras que post_count es el total de artículos que se mostrarán (partiendo de 1). Esto quiere decir que si vamos a mostrar 10 artículos en el bucle, al mostrarse el último artículo el atributo current_post valdrá 9, mientras que el atributo post_count valdrá 10.

A continuación os dejo un bucle de ejemplo para que entendáis mejor lo que quiero decir:

if (have_posts()): while (have_posts()): the_post();

if ($wp_query->current_post == 0)
{
echo 'Este es el primer artículo del bucle';
}

if (($wp_query->current_post + 1) == $wp_query->post_count)
{
echo 'Este es el último artículo del bucle';
}

if ($wp_query->current_post > 0)
{
echo 'Este no es el primer artículo del bucle';
}

if (($wp_query->current_post + 1)  < $wp_query->post_count)
{
echo 'Este no es el último artículo del bucle';
}

if (($wp_query->current_post > 0) && (($wp_query->current_post + 1)  < $wp_query->post_count))
{
echo 'Este no es ni el primer artículo del bucle ni el último';
}

endwhile; endif;

Realmente no tiene mucha complicación y facilita bastante el detectar cuándo se muestra el primer o el último artículo.

Elimina el nuevo filtro de WordPress 3.0

Con la llegada de WordPress 3.0 se ha introducido un nuevo filtro que no aparecía documentado en el codex: se trata de un filtro que reemplaza la palabra “WordPress” por “WordPress“. Esto en principio resulta inofensivo, aunque algo molesto en algunos casos, sin embargo puede provocar algunos problemas con nombres de archivos y URLs, ya que el filtro se aplica a los títulos de los artículos y el contenido tanto de los mismos como de los comentarios.

Este nuevo filtro está definido en el archivo wp-includes/default-filters.php (sobre la línea 90):

// Format WordPress
foreach ( array( 'the_content', 'the_title', 'comment_text' ) as $filter )
	add_filter( $filter, 'capital_P_dangit' );

La función capital_P_dangit() en cuestión está en el archivo  wp-includes/formatting.php (sobre la línea 2828):

/**
 * Forever eliminate "Wordpress" from the planet (or at least the little bit we can influence).
 *
 * Violating our coding standards for a good function name.
 *
 * @since 3.0.0
 */
function capital_P_dangit( $text ) {
       return str_replace( 'Wordpress', 'WordPress', $text );
}

Como podéis ver, la función reemplaza cualquier aparición de “WordPress” por “WordPress“, dando igual que esté en la URL de una imagen o de un enlace, en una cita, en parte de un código (en PHP la variable $Wordpress y $WordPress son variables distintas), lo que puede hacer que algunos ejemplos de código estén mal.

Eliminar el filtro es muy sencillo, basta con añadir al archivo functions.php de nuestro theme (o crear un plugin con el siguiente código):

foreach ( array( 'the_content', 'the_title', 'comment_text' ) as $filter )
	remove_filter( $filter, 'capital_P_dangit' );

Con esto el filtro queda eliminado y volvemos a tener la libertad de escribir WordPress como nos plazca. Yo por mi parte ya he eliminado el filtro en Sumolari.com.

WP Carousel 0.5.3

¿Os acordáis del bug con el guardado AJAX que medio arreglé con un sistema de guardado híbrido? Pues bien, gracias a la colaboración de Joel he encontrado una posible solución definitiva al problema, que no sólo afectaba al guardado AJAX, sino también al Modo de Integración Externa (aunque no se había reportado). La solución es algo tosca, pero parece eficaz: si tras buscar la ruta al archivo wp-blog-header.php, WP Carousel no encuentra la ruta correcta, se prueba a usar la ruta “../../../”, que en teoría debería de ser válida en cualquier caso, si esta ruta es correcta, se procede con el guardado AJAX, si es incorrecta, se procede con el guardado alternativo.

Por el momento parece que este método funciona, ya que aquellos usuarios que usaban el guardado AJAX sin problemas seguirán usándolo como hasta ahora, mientras que aquellos que tenían problemas usarán la ruta “../../../” (ruta que de hecho es la que obtiene en mis pruebas el método usado en la versión 0.5.2). Si ni aún así se encuentra la ruta, el plugin utilizará el guardado no AJAX, que aunque no es ni tan rápido ni tan cómodo como el AJAX, guarda los cambios.

WP Carousel 0.5.3 ya está en WordPress.org, y en unos minutos os aparecerá la actualización en el Panel de Administración de WordPress. ¡Recordad que WP Carousel 0.5 sólo es compatible con WordPress 3.0 (y posteriores)!

WP Carousel 0.5 requiere WordPress 3.0

Al liberar WP Carousel 0.5 no revisé los requisitos mínimos en cuanto a la versión de WordPress, ya que realmente tan sólo había cambiado de lugar las funciones que ya usaba anteriormente, así que no le di la más mínima importancia. Sin embargo, WP Carousel 0.5 no es compatible con versiones anteriores a WordPress 3.0. En esta versión de WordPress añadieron un estupendo sistema que avisa a los desarrolladores cuando usamos una función obsoleta. WP Carousel 0.5 utilizaba dos funciones que estaban marcadas comos obsoletas: un parámetro de la función encargada de mostrar los enlaces de las páginas de opciones y una función que sirve para mostrar el enlace a la encuesta una única vez a los usuarios.

Para ser exactos, en cuanto a los enlaces del Panel de Administración, usaba un valor numérico para los permisos de los usuarios, en lugar del nombre del tipo de cuenta requerida. Por lo que respecta a la segunda función, se trata de una que permite asociar una pareja de índice-valor a cada usuario. El uso es muy sencillo: si el usuario que ha accedido a la página no tiene cierto valor en cierto índice (que sólo es usado por WP Carousel), se le muestra el mensaje para participar en la encuesta y se modifica el índica para que sí que tenga dicho valor (de modo que ya no volverá a ver el mensaje de la encuesta). La idea era ofrecer a los usuarios una forma de enviarme con facilidad sus opiones y sugerencias (que recordad, siempre son bienvenidas), pero tampoco molestar y mostrar un mensaje aún después de haberse hecho lo que el mensaje pedía.

En estos momentos ya están actualizados los requisitos en la página del plugin y las combinaciones de WP Carousel 0.5 con versiones de WordPress anteriores a la 3.0 están marcadas como incompatibles. La solución que yo recomiendo es actualizar a WordPress 3.0, ya que cada vez serán más los plugins que hagan uso de funciones que se han añadido en esta versión de WordPress.

Disculpad las molestias y gracias a todos por reportar los errores que habéis encontrado hasta ahora.