Bug en WordPress 2.2

Parece que a los desarolladores de WordPress se les ha escapado un bug que afecta a la función de «Trackback» o de notificación a los blogs que referimos en nuestras entradas.

Se trata de un error en la función «template_rdf()» que se ejecuta dentro del loop después de cada entrada y que añade metadata que apunta a la dirección de trackback para cuando nuestra entrada es referenciada en otro blog. Actualmente dicha información no aparece en la página debido a un error en la línea 242 del archivo «comment-template.php» dentro de la carpeta «wp-includes».

A falta de parche oficial, podemos arreglarlo cambiando:

if (strpos($_SERVER['HTTP_USER_AGENT'], 'W3C_Validator') !== false) {

por

if (strpos($_SERVER['HTTP_USER_AGENT'], 'W3C_Validator') == false) {

Ya sé que WordPress está desarrollado por un equipo de personas que dan su tiempo y conocimientos a la comunidad de forma totalmente altruista, pero creo que este es uno de esos fallos que no deberían colarse. El error se descubrió hace unas tres semanas y no ha debido considerarse esencial, porque todavía no hay una respuesta oficial.

A mí me encanta WordPress, pero ya son demasiados los bugs sin resolver y los cambios de versión a versión que rompen los plugins y las plantillas. Es esto algo inherente a un proyecto tan grande y popular? O por el contrario se debe a la base del código ya tiene cierta edad?

Vuestra opinión?

PHP 5, actualización con sorpresas

Hoy he actualizado mi servidor a Php 5. Esta nueva versión tenía algo de fama de SP2 en el mundillo web, debido a que se habían realizado algunos cambios que podían romper programas escritos para versiones anteriores.

Si algo malo puede pasar, pasará.

El blog y algunas secciones de la página han estado caídos durante un rato. El primer problema (el más importante) que ha surgido ha sido

Fatal error: Only variables can be passed by reference in /var/www/blog/wp-includes/gettext.php on line 66.

He encontrado nuevas versiones del archivo gettext.php con el mismo problema, e inclso parches que solucionaban parcialmente el problema pero que generaban otros errores leves. Al final he encontrado un post de ayuda en la web de WordPress (Localization Problems « WordPress Support), que sugería sustituir
return array_shift(unpack('V', $this->STREAM->read(4)));
que anda por la línea 66 de gettext.php (en la carpeta /wp-includes/), por
$tmp = unpack('V', $this->STREAM->read(4));
return array_shift($tmp);

Y hacer lo mismo con la función que la sigue (sólo varía la ‘V’, que en este caso es ‘N’).

Luego he visto más problemas en funciones mías, pero eran bugs tontos de mi código (p. ej por usar $HTTP_GET_VARS cuando las tengo desactivadas; solución: $_GET).

Luego he tenido un problema misterioso y dificil de reproducir, pero mis sospechas caían en el plugin wp hashcash, que sirve para evitar el spam de los comentarios. Al desactivarlo he visto que todo iba más o menos bien. Hay una versión nueva que intentaré instalar mañana.

Y lo último que me ha fastidiado PHP 5 es la búsqueda con la API de Google, debido a dos cosas: En primer lugar la biblioteca nusoap.php ha quedado obsoleta (creo) y en segundo lugar, PHP 5 incorpora su propio módulo SOAP. Por suerte he encontrado un excelente artículo en francés, Api Google et SOAP, que detalla una API con ejemplos. Sólo he tenido que cambiar las funciones y llamadas en mi script.

Espero que esto se traduzca en mayor estabilidad y rapidez, porque ha sido una pequeña pesadilla.

Deberes

Siguiendo con mi lista de deberes atrasados, hoy por fin he hecho algo con mi página de enlaces. Se me ha ocurrido que como soy un vago, escribiría un script para que la página se actualice sola con los enlaces que posteo a del.icio.us.

Por suerte para mi, alguien ya había hecho el trabajo sucio esta vez: Richard Eriksson en Movableblog, que ofrece un pequeño snippet que hace uso de MagpieRSS.

En fin, al menos echarle un vistazo: Mis enlaces.

Googleado

Hola a todos.

Hoy ya está disponible de nuevo la función de búsqueda. Me he pasado dos días luchando con php y con la API de Google, pero al fin está a punto. En el blog aparecen 2 cajas de búsqueda: La superior, que es la búsqueda Google de reven.org y la lateral que es la búsqueda del blog (y que funciona mediante WordPress). Quizás debería distinguir ambas… Intentaré hacerlo ahora. Qué tal quedaría ‘busca en el blog’?

En un par de días, cuando vea que las búsquedas funcionan bien y que la gente las usa, publicaré en la web el código fuente (el script de php). He decidido hacer mi propio script (reciclando cosas ya hechas), porque nada de lo que he encontrado era exactamente lo que quería. Con la documentación de la API (bastante sencillita en cuanto a entrada y salida de parámetros se refiere) y un poco de magia (php y una clase que encontré en internet: nusoap.php), he puesto a punto la búsqueda. Probarla y contarme…

Y en otro orden de cosas: es sábado y me voy a cenar.

Sed buenos.