Cuando, en septiembre de 2011, comencé a utilizar el tema Hybrid, creí que el cambio me daría oportunidad de publicar una larga serie de artículos, pues Hybrid no solo es un tema que permite un altísimo grado de personalización sino que además cuenta con una documentación imponente y un soporte extraordinario a cargo de su autor, Justin Tadlock. No obstante, apenas he escrito sobre las modificaciones que desde entonces he realizado en la plantilla que sirve para presentar mi blog al mundo: apenas la entrada que inició esta serie, Adaptándome a Hybrid, 1, alguna referencia en artículos como Mejora en los índices del Tigre, y poco más. Tan magra presencia se me antoja injusta, porque desde que comencé a utilizar Hybrid, he realizado en el blog algunas modificaciones de cierto relieve, que tienen relación con el tema utilizado.

De la primera –la creación de un plugin de funciones que recoge las hasta ahora presentes en el fichero functions.php de la plantilla e incorpora otras muchas nuevas– trataré en otro momento, pues solo afecta al tema de forma indirecta; además, sobre este asunto ya tengo un artículo a medio escribir, que seguramente verá la luz en las próximas semanas. El segundo cambio, del que me ocuparé a continuación, es la creación de varias páginas de índices adicionales (por categorías, por fechas, por orden alfabético y de reseñas de libros), que sirven como complemento del índice general del blog.

Podría decirse que estas nuevas páginas son redundantes, pues a su contenido ya se puede acceder desde el índice general de La Bitácora del Tigre. Así es, en efecto, ya que dicho índice es una página dinámica con efectos de despliegue y contracción (por cierto, logrados gracias al plugin WP-dTree), que permite obtener listados de todos los artículos del blog tanto por fechas como por categorías. Ahora bien, dichos listados no se generan inmediatamente, lo que implica que un visitante interesado en tener a la vista la lista de todos los artículos del blog se ve obligado a obtenerla con unos cuantos (la verdad, muy pocos) clics de ratón.

Por eso he creado las cuatro páginas que he mencionado más arriba, que no solo servirán a los visitantes de La Bitácora del Tigre para guiarse por sus vericuetos, sino también a su autor, cada vez más perdido entre el maremágnum de etiquetas, enlaces, referencias cruzadas, asuntos pendientes y otros tratados hasta la extenuación. Las cuatro páginas están basadas en el paquete de plantillas para páginas fijas que Justin Tadlock publicó en su día para el tema Hybrid, algunas de las cuales yo he adaptado para mi propio uso. A continuación las describiré brevemente y mencionaré los cambios que he realizado sobre ellas.

1. Entradas por categoría con fecha.

Es una plantilla de página basada en la que Tadlock denomina “Archives By Category”, y que corresponde al fichero page-archives-by-category.php. Yo la he modificado de la siguiente forma:

  • He generado un listado completo de todas las entradas de todas las categorías. Dado que la lista de cada categoría se obtiene mediante su propia instancia de la función query_posts, y que además he añadido el parámetro “post_per_page=-1”, para obtener todas las entradas que forman parte de todas las categorías, la página tarda en cargarse lo suyo.
  • He sustituido las listas sin numerar por listas numeradas. Esto se consigue sustituyendo la etiqueta original, <ul>, por <ol>.
  • He añadido la fecha tras el título de la entrada. Al principio utilicé la función the_date, pero ello provocaba que, en aquellos casos en que dos entradas habían sido publicadas el mismo día, solo apareciera la fecha de la primera, por lo cual la he sustituido por get_the_date.

El resultado de estas modificaciones puede verse en la página entradas por categorías.

2. Consultas personalizadas.

En este caso, la plantilla de página fija está basada en “Custom Query List”, a su vez correspondiente al fichero page-custom-query-list.php. La clave de esta plantilla es una consulta personalizada a la cual se le puede pasar un parámetro definido como metadato en la correspondiente caja del editor de páginas y entradas. En concreto, el metadato es el campo personalizado “Query”, que en cada una de las tres páginas que utilizan esta plantilla toma diferentes valores, en función del resultado deseado, a saber:

  • Para la página Entradas por fechas, el parámetro utilizado es: “orderby=date&order=ASC&posts_per_page=-1”.
  • Para la página Entradas por orden alfabético, el parámetro es muy semejante: “orderby=title&order=ASC&posts_per_page=-1”. Una captura de esta página puede verse en la figura 1.
  • Para la página Reseñas de libros, el parámetro es algo más complejo, porque debe incluir el ID de la correspondiente categoría: “cat=10&orderby=title&order=ASC&posts_per_page=-1”.

En cuanto al código del fichero de plantilla, los cambios realizados en el original de Justin Tadlock son los mismos que ya he descrito en los puntos primero y segundo del epígrafe anterior.

Figura 1. Lista de entradas por orden alfabético

Figura 1. Lista de entradas por orden alfabético

Algunos lectores se preguntarán por qué no he creado estas cuatro páginas mediante plugins, habiendo como hay tanto donde escoger dentro del repositorio oficial de WordPress. Pues bien, la respuesta es tan evidente como arbitraria: porque no me ha dado la gana. Si he de justificar mi decisión con argumentos más sólidos diré, en primer lugar, que deseaba experimentar con el código, y en segundo lugar que no me interesaba sobrecargar el blog con scripts que, con una alta probabilidad, iba a utilizar pocas veces.

Con todo, he de admitir que el segundo argumento es un poco tramposo, porque en el curso de mis experimentos con los listados de entradas he vuelto a probar diversos plugins que en su momento utilicé en La Bitácora del Tigre (véase, a este respecto, el listado de extensiones citadas al final del artículo El árbol de índices del Tigre). También me he visto tentado por plugins que he utilizado en otros sitios web, como por ejemplo WP Realtime Sitemap, encargado de generar el mapa del sitio en Curso de WordPress 2012, o bien que acabo de descubrir; este es el caso de Annual Archive, al que seguramente daré acomodo en algún proyecto futuro.

Metido de lleno en los experimentos para generar listados de entradas, no he querido dejar pasar la ocasión sin probar la técnica descrita en el artículo Query Posts Widget Plugin + Widgetized Page Template + Widget Logic = WordPress Gold. Mediante la plantilla “Widgets” y el área denominada “Widgets Template”, dos elementos exclusivos del tema Hybrid, en combinación con los plugins Query Posts y Widget Logic, es posible crear casi cualquier lista de entradas concebible y asociarla a la página deseada, con un esfuerzo realmente mínimo (el citado artículo contiene un vídeo que explica muy detalladamente el proceso). Aunque los resultados que se obtienen con esta combinación son excelentes, las páginas tienen un aspecto algo diferente a las demás, lo cual rompe la homogeneidad estética del blog, y de aquí que haya preferido el método que he explicado en los párrafos precedentes.

No quiero cerrar este artículo sin mencionar otra extensión que he descubierto en el curso de mis últimos experimentos con el tema Hybrid. Se trata de Display Posts Shortcode, un plugin capaz de generar listados de entradas mediante códigos abreviados o shortcodes. Aunque dispone de muchas opciones, no es tan potente y flexible como Query Posts (por ejemplo, carece de la posibilidad de generar listas de entradas basadas en rangos de fechas), pero tiene la gran ventaja de que se puede emplear en cualquier lugar (entradas, páginas y hasta widgets; en este último caso, mediante un truco muy fácil de poner en práctica) sin otra condición que usar el shortcode “display-posts”, con los parámetros adecuados. De momento, he utilizado el plugin en una adenda a la entrada Los ciento y pico libros del Tigre. Vistas sus infinitas posibilidades, estoy seguro de que no será la única ocasión en que haga uso de ella.

Adenda del 27 de diciembre de 2012

Mientras preparaba un artículo sobre el uso del plugin Display Posts Shortcode, he encontrado otra extensión que sirve para propósitos muy similares. Se llama Shaun’s WP Query Shortcode, y su objetivo es generar listados de entradas mediante consultas WP Query personalizadas, gracias al correspondiente código abreviado, que puede tomar cualquiera de los parámetros de dicha clase. En cuanto a potencia, se halla casi a la altura de Query Posts; sin embargo, es más difícil de utilizar que este plugin o que Display Posts Shortcode, ya que, si se desea modificar el resultado del listado de ficheros, es preciso redefinir, bien mediante la edición del plugin, bien mediante la confección de otro plugin ad hoc, el código abreviado que genera el listado de entradas. En todo caso, no tengo la menor duda de que la extensión Shaun’s WP Query Shortcode es capaz de hacer maravillas en manos competentes, así que convendrá seguirle la pista a partir de ahora.