El jueves pasado, tras redactar y publicar el borrador de la entrada Gestores de descargas para WordPress 2. Plugins de subida de ficheros, desde el cliente para blogs Windows Live Writer (siempre lo hago así: primero escribo el texto y lo formateo con esa aplicación, luego publico la entrada en modo borrador y finalmente la completo desde el backend de WordPress), me puse a la tarea de finalizar el artículo y añadirle unos cuantos metadatos e imágenes adjuntas.

Pues bien, me fue imposible, porque cada vez que pulsaba sobre el botón Guardar borrador, obtenía un mensaje de error del navegador, que daba cuenta de un timeout en la conexión. Curiosamente, desde el editor de la entrada, y gracias al gestor de elementos multimedia de WordPress, sí me fue posible añadir las cuatro imágenes que ilustran dicho artículo y configurar una de ellas como imagen destacada. En cambio, no pude incorporar el resumen, las etiquetas ni los campos de metadatos que suelo utilizar.

Al darme cuenta de que por los medios convencionales no había modo de finalizar la edición del artículo, hice lo siguiente:

  • Editar diversos campos de la entrada directamente sobre la base de datos, mediante el phpMyAdmin de mi proveedor de alojamiento. Así añadí al registro correspondiente de la tabla wp_posts el “slug” del título de la entrada (campo post_name), y su resumen (campo post_excerpt), y también modifiqué algún error detectado en el texto (campo post_content).
  • Añadir las etiquetas. Como hacerlo en la base de datos es bastante difícil, debido a la complejidad de las relaciones entre las tablas que almacenan las etiquetas y entradas (tablas wp_terms, wp_term_taxonomy y wp_term_relationships, por un lado, y wp_posts, por otro), pensaba dejar esta tarea por imposible, hasta que me acordé de la existencia del modo de “edición rápida” de WordPress, que permite una edición muy cómoda de las etiquetas. Para mi sorpresa, este modo de edición funcionó a la primera.
  • Añadir algunos metadatos. Para ello, y de nuevo con el phpMyAdmin, añadí los registros necesarios en la tabla wp_postmeta.

Con estas operaciones, la entrada ya estaba completa y a mi entera satisfacción. Ahora bien, seguía (y sigo) sin saber la causa del comportamiento anómalo que he descrito. No tengo conciencia de haber activado en los últimos días ningún plugin, servicio o función que suponga un cambio sustancial con respecto a las entradas anteriores al 30 de junio, y tampoco sé por qué este problema sólo afectaba a una entrada determinada y no a las demás del blog. En todo caso, y con el fin de averiguar la causa de esta anomalía, realicé las siguientes comprobaciones:

1. Resetear la conexión del router, porque a veces mi línea ADSL hace extraños. Ya sé que era una acción a la desesperada, pero no quise privarme de acudir a los remedios heroicos. Como era esperable, el truco no funcionó.

2. Activar el modo de depuración “silencioso” de WordPress, que permite obtener un fichero de registro sin el inconveniente de volcar a pantalla los mensajes de error (sobre la configuración necesaria del fichero wp-config.php para lograr que los mensajes de error de PHP se escriban en un fichero, véase el artículo Simple Debugging with WordPress). Con los plugins activados, eran tantos los errores que no conseguí identificar una causa probable; en cambio, con todos los plugins desactivados, sólo obtuve un único mensaje de error, tres veces repetido:

PHP Notice: WP_Query fue llamado con un argumento que está <strong>obsoleto</strong> desde la versión 3.1! "caller_get_posts" está obsoleto. Utilice "ignore_sticky_posts" en su lugar.

Aunque llevé a cabo muchas búsquedas para encontrar alguna relación entre el contenido de este mensaje y el problema de la entrada no editable, ninguna me ofreció una pista eficaz.

3. Desactivar todos los plugins. Con todas las extensiones desactivadas, el problema persistía, así que no me molesté en ir activándolos todos, uno a uno, para encontrar al responsable del error.

4. Actualizar a la versión 3.1.4 de WordPress. Después de hacer las consabidas copias de seguridad de los archivos y de la base de datos mediante el plugin BackWPup, y tras desactivar todos los plugins salvo el antispam Akismet (pues bastan cinco minutos con la extensión desactivada para que lleguen unos cuantos comentarios basura), el viernes actualicé La Bitácora del Tigre a la versión 3.1.4 de WordPress. No tuve ningún problema, salvo la ya tradicional y larga espera (véanse las dos o tres últimas de este blog correspondientes a la etiqueta actualizaciones) antes de que el sistema respondiera con el mensaje de tarea completada. Sin embargo, y tras reactivar uno a uno los plugins desactivados, el problema de la entrada ineditable persistía.

5. Conectarme por FTP y examinar cuidadosamente todos los directorios del blog, en busca de algún fichero cacheado u oculto que pudiera tener un efecto pernicioso sobre la capacidad de la entrada para ser editada. Tampoco encontré nada remotamente sospechoso de estar relacionado con el problema.

6. Investigar en la base de datos, en busca de IDs duplicados en la tabla wp_posts, valores extraños en las tablas wp_options y wp_postmeta , etc. Ninguna de las búsquedas que realicé fue fructífera, pero al menos aproveché para limpiar unos cuantos registros y valores innecesarios.

Todo eso hasta ayer. Estaba convencido de que iba a terminar este artículo con una rotunda declaración de fracaso, pero he aquí que, al realizar una última verificación de la entrada de marras, pude comprobar con una mezcla de asombro, alivio e irritación que ya se podía editar. Si ustedes me preguntan cómo he resuelto el problema, tendré que confesarles que no tengo la menor idea. No sé qué ha cambiado en el blog (aparte de lo que ya he relatado); tampoco puedo asegurar (aunque, dados los síntomas, tengo algún barrunto de ello) si el problema se debía a algún cacheo defectuoso o configuración recóndita del servidor que aloja mi sitio web. En todo caso, me alegro de que el misterioso caso de la entrada ineditable haya terminado felizmente, aunque me fastidia sobremanera no saber la causa de tan extraño comportamiento.