Recientemente he podido disponer del tiempo suficiente para renovar el aspecto de la plataforma Multiblog del PNTE con un nuevo tema, Hybrid News, tema-hijo del celebérrimo Hybrid, que ha sustituido al ya veterano Visionary. El cambio de uno a otro tema ha sido bastante sencillo (de hecho, mucho menos accidentado de lo que yo había previsto), sobre todo porque ambos son producto de la mano maestra de Justin Tadlock, uno de los mejores diseñadores de plugins para WordPress y respetadísima autoridad en tal materia.
Ahora bien, no todo ha sido coser y cantar, y un buen ejemplo de las dificultades con las que se encuentra todo administrador de un sitio web realizado con WordPress cuando cambia de tema es la nueva página denominada Blog, en la qu se presentan todas las entradas al estilo de un blog convencional. Como la mayoría de las entradas carecía hasta hace poco de la etiqueta “more” (porque en la disposición elegida con el tema Visionary dicha etiqueta era innecesaria), he tenido que revisar todos los artículos e insertar la etiqueta en el lugar adecuado, a fin de obtener listados de artículos más manejables.
En la revisión de entradas me he topado con un escollo que en su momento ya advertí, pero que dejé pasar porque entonces no afectaba a la funcionalidad del sitio: el listado de temas que figura en la entrada Todas las plantillas de la plataforma Multiblog no se podía partir con la etiqueta “more”. En efecto, este vistoso listado de plantillas, que se obtiene mediante un “shortcode” proporcionado por el plugin ThemeBrowser, resulta algo problemático de utilizar, porque el plugin (probablemente por algún fallo de programación que no he sabido subsanar) provoca que cualquier texto introducido en el editor de WordPress antes del código entre corchetes se desplace al final del listado.
Después de probar sin éxito muchos trucos y de torturar un buen rato a mis compañeros del PNTE, tuve que editar el plugin para introducir un texto preliminar por encima del bucle que genera el listado de plantillas. Sin embargo, la etiqueta “more” seguía resistiéndose a dicho tratamiento. Así que probé otro enfoque: editar el fichero functions.php del tema Hybrid News, y definir en él una nueva función que me permitiera insertar un nuevo “shortcode” con el texto introductorio, antes del que proporciona el plugin ThemeBrowser.
Este nuevo truco funcionó casi a la perfección, pero ayer mismo leí en WPCandy el artículo How to create your own WordPress functionality plugin, escrito por Ryan Imel, que ponía en cuestión la idoneidad del uso del fichero functions.php para definir un “shortcode”. Su argumento resulta bastante sólido: utilizar este fichero para propósitos ajenos a la estricta funcionalidad de la plantilla implica que el sitio web se hace excesivamente dependiente del tema en uso; si el tema se modifica, hay que trasladar los cambios en el fichero functions.php del tema origen al tema destino. Ryan Imel señala, con muy buen criterio (y con el apoyo de la autoridad de un reciente artículo de Justin Tadlock, Dealing with shortcode madness), que para tales casos es mucho más apropiado un plugin.
Como ya tenía el código preparado, me atreví a la osada empresa de programar un plugin, que he denominado, algo pomposamente, “Introduction to Themes Listings”, y que sólo tiene sentido en combinación con el ya citado plugin ThemeBrowser. Se trata de una extensión de una simplicidad casi bochornosa, pues lo único que hace es definir el “shortcode” [intro_listado_temas], que a su vez sirve para insertar, desde el editor de WordPress, un texto en la posición que se desee. Ese texto se puede modificar, pero para ello hay que editar “a mano” el plugin, porque no he previsto ningún mecanismo que pueda interactuar con el backend de WordPress. A continuación figura el código, por si alguien lo encuentra aprovechable:
<?php /* Plugin Name: Introduction to Themes Listings Description: Crea un shortcode, <code>[intro_listado_temas]</code>, que permite añadir un texto de introducción al listado de temas proporcionado por el plugin <a href="http://wordpress.org/extend/plugins/themebrowser/">Theme Browser</a>. Version: 0.1 License: GPL Author: Eduardo Larequi Author URI: http://irati.pnte.cfnavarra.es/multiblog */ function introduccion_listado_temas() { echo ' Texto que se vaya a insertar con el shortcode '; } add_shortcode('intro_listado_temas', 'introduccion_listado_temas'); ?>
Por cierto, después de creado el plugin y una vez activado en el blog principal de la plataforma Multiblog (los demás blogs no pueden utilizarlo), he comprobado que me he limitado a reinventar la rueda, porque ya existe otra extensión, denominada Post Snippets, que permite definir a voluntad estos códigos entre corchetes que cada vez son más populares en el universo WordPress. Con todo, yo no voy a renunciar a mi modesta invención, de la que me siento tan infantilmente orgulloso y feliz como el proverbial crío con zapatos nuevos.
[…] entregué con el entusiasmo del converso, la experiencia acumulada tras el caso que ya describí en Mi primer plugin para WordPress y la inestimable ayuda del artículo How to create your own WordPress functionality plugin. El […]