Validar las galerías de WordPress 2.6 para XHTML

De cuando en cuando me da por probar el blog en el validador de W3C —manías de uno—, y esto de utilizar un DTD de XHTML 1.1, aunque no es necesario ponerse tan estricto para un blog, trae de cuando en cuando algún quebradero de cabeza con el tema de la validación. Sobre todo cuando el contenido es ubicado automáticamente, como hacen las galerías que por defecto permite crear WordPress 2.6.

Para la entrada anterior sobre la fama de las suecas, por ejemplo, usé una galería, y el resultado fue que luego validando me lanzaba un fallo bastante gordo, ni más ni menos que justo antes de donde va el código de las imágenes, dentro del body, había un par de etiquetas style para modelar la manera de ubicar las imágenes, cuando esas etiquetas debieran de aparecer en todo caso entre <head> y </head>.

Este es el error descrito por el validador:

document type does not allow element «style» here.

<style type='text/css'>

Estuve buscando solución al asunto, porque eso es algo que WordPress coloca de manera automática, y encontré un par de plugins pero que no me sirvieron entre que o yo no sabía acabar de ponerlos en marcha o que incluso empeoraban aún más la validación. Así que me armé de valor —porque en cuanto actualice WordPress se irá al traste lo que modifique— y le metí mano directamente al archivo «wp-includes/media.php» para hacer una chapuza en toda regla pero que funciona. :mrgreen:

Se trata de modificar el archivo para que no incluya la declaración de estilo, que ya se la incluiremos nosotros a mano a nuestra hoja de estilo del blog u a otra aparte que luego incluyamos en este.

  • Se busca la línea en la que dice: » $output = apply_filters(‘gallery_style’, « « —en mi caso la 426—
  • Se comenta todo lo concerniente a la asignación de la variable $output hasta varias líneas más abajo —en mi caso hasta la 444—, o bien, para los más vagos, no se comenta nada y se salta directamente al siguiente punto reasignando la variable y punto, como si este no existiera xD
  • Justo debajo de donde se ha cerrado el comentario se añade: « $output = apply_filters(‘gallery_style’, «<div class=’gallery’>»); «. Lo de arriba se ha comentado en lugar de borrarlo para curarse en salud por si un día hubiera que volver a la versión original. :rolleyes:
  • Ya se puede guardar el medida.php

Ahora ya es cuestión de añadir a la hoja de estilos del blog, u a otra aparte, pero que lo importante es que ésta sea incluída siempre o al menos cuando figuren galerías:

  • Se abre la hoja de estilos del blog, o la que se vaya a incluir
  • Se le pega todo ese código que antes se comentó desde pone pone .gallery { —línea 428 en mi caso— hasta el último cierre }
  • Ojo con el atributo width: {$itemwidth}%; que es calculado según el número de fotos y tal. Es necesario fijarle un valor. Yo por ejemplo he puesto width: 33%; porque en las galerías que me autogenera normalmente WordPress se decide por ese valor, pero para gustos los colores.
  • Se guarda el archivo de hoja de estilos y listo.

Pongo el código que añado a mi hoja de estilos para evitar confusiones, aunque no es bueno hacer copiar y pegar, mejor usar el que cada cual tenga en su media.php 😛 :

.gallery{margin:auto}
.gallery-item{float:left;margin-top:10px;text-align:center;width:33%}
.gallery img{border:2px solid #cfcfcf;}
.gallery-caption{margin-left:0;}

Para estos casos siempre alguien se inventa algún plugin, pero no tengo ni idea de como se hacen… y así me ha salido esta chapuza xD.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *