Mejorando WPG2: wpg2link

19 October 2005 at 21:05

El problema

Como ya he contado anteriormente, recientemente he instalado el Gallery2 y lo he integrado con el WordPress mediante el plugin WPG2. Con este plugin, además de sincronizar los usuarios de WordPress con los de Gallery2, podemos añadir imágenes en nuestros posts simplemente con los tags <wpg2> y <wpg2id>. Con el primero añadimos la imagen mediante su path, y con el segundo, lo añadimos por su id. Por ejemplo:

<wpg2>album/foto01.jpg</wpg2>

El problema es que con estos tags no es posible enlazar a una imagen/álbum desde un enlace de texto. Es cierto que puedo poner a mano la URL de la imagen/álbum en los enlaces, pero si alguna vez cambio las reglas de reescritura del Gallery (parecido a los permalinks de WordPress), tendré que revisarme todos esos enlaces repartidos por los posts y corregirlos uno a uno. Como no estoy dispuesto a hacerlo he pensado en crear otro pseudotag, <wpg2link> que me dé la URL. De esta manera yo podría usar algo así como

<a href="<wpg2link>album/foto01.jpg</wpg2link>">foto</a>

que se traduciría en algo como:

<a href="http://www.example.com/photos/album/foto01.jpg">foto</a>

Así, si alguna vez cambiara las reglas de reescritura de Gallery2, el enlace cambiaría automáticamente para apuntar a la dirección correcta.

La solución

Después de estudiar el código tanto del plugin WPG2 como de Gallery2 he visto que sería suficiente modificar el fichero wp-content/plugins/wp-gallery2/g2embed.php. Lo que he hecho ha sido añadir dos funciones: una que devuelve la URL de la imagen a partir de su path, y otra que se encarga de sustituir el pseudotag por la URL generada automáticamente.

Cuando ya lo tenía funcionando, he intentado averiguar como podía hacerle llegar estas modificaciones a los autores del plugin y mientras buscaba por la página de plugin y por los foros, he encontrado un post en el foro que hablaba justamente de esto. Pero allí comentaban usar <a href="wpg2link:album/foto01.jpg">foto</a>, que me ha gustado más que lo de <wpg2link></wpg2link>, y ha sido la abreviatura que finalmente he usado. Pero para justificar mi código, he de decir que la implementación del foro me parecen una chapuza :-P

Para aquellos a los que le interese esta funcionalidad adicional, os podéis descargar mi parche y lo aplicáis con patch -p0 < g2embed-wpg2link.patch, suponiendo que estáis en el directorio wp-content/plugins/wp-gallery2/ y que el parche se encuentra en ese mismo directorio.

Por cierto, no he encontrado ninguna forma de contactar con los desarrolladores. Por no encontrar no he encontrado ni una lista de correo de desarrolladores. Supongo que podría poner un post en el foro, me imagino que alguno de los desarrolladores lo debe leer.