¡Mis tablas, ni mirarlas! – Petición para los desarrolladores de plugins en WordPress

Publicada en WordPress.

Mira nuestro vídeo

Existe una versión mejor de tu web

Comparte este artículo

Lo reconozco, soy un poco irascible y pocas cosas me sulfuran más que encontrarme con uno de los plugins de WordPress de calidad pésima (por desgracia bastantes, y lo digo por experiencia). A lo mejor alguien opina lo mismo de los nuestros (ya sabéis, eso de qué quién esté libre de culpa que tire la primera piedra) pero la verdad es que hacemos lo posible para cuidar su diseño y codificación.

De entre todos los posibles «pecados» de los plugins, el que para mi es más grave es el de tocar lo que no se debería, en especial las tablas de la base de datos de WordPress. Todos los demás componentes WordPress asumen que tu base de datos no ha sido modificada (al menos no las tablas que componen el núcleo de WordPress) con lo cualquier modificación por pequeña que sea pone en riesgo las actualizaciones futuras de WordPress, los backups automáticos que tengas definidos, los migraciones a otro servidor y un largo etcétera.

Es por esto que te pido, apreciado desarrollador de plugins WordPress, que te atengas a las siguientes reglas de diseño al crear tu plugin:

  1. No modificarás las tablas del núcleo de WordPress (cambiando tipos de datos de las columnas, añadiendo restricciones adicionales como claves foráneas, …).
  2. No extenderás las tablas del núcleo de WordPress con campos adicionales que sean obligatorios (NOT NULL, en terminología de base de datos). Esto haría que automáticamente cualquier otra función que estuviera añadiendo datos a esa misma tabla fallase inmediatamente.
  3. No extenderás las tablas del núcleo de WordPress con campos adicionales aunque sean opcionales o tengan valor por defecto. Si quieres añadir información adicional sobre las entradas o usuarios, utiliza las tablas wp_postmeta y wp_usermeta, respectivamente. Si quieres guardar información genérica, utiliza la tabla wp_options.
  4. No crearás nuevas tablas que no utilicen el prefijo definido por defecto en la instalación WordPress para los nombres de las tablas (típicamente el «wp_»). De este modo, por lo menos podemos identificar rápidamente que estas nuevas tablas son también parte del sitio WordPress.
  5. No crearás nuevas tablas.

Sé que esperar que sigas las cinco es mucho pedir pero para mi las cuatro primeras son de obligado cumplimiento y sólo en caso necesario aceptaría que rompieras la quinta, eso sí, minimizando el número de tablas. Al menos de esta forma el núcleo se mantiene y el usuario podrá identificar claramente las nuevas tablas y reconfigurar así sus estrategias de copia de seguridad, optimización, y similares.

Soy consciente de qué para ti es más fácil crear nuevas tablas que se ajusten perfectamente a lo que necesitas que aprovechar las opciones que ya te ofrece WordPress para conseguir el mismo resultado. Pero piensa en nosotros (los usuarios), te lo agradeceremos de corazón. En el futuro, tened en cuenta esta petición para los desarrolladores de plugins.

¿Añadirías alguna regla más? ¿Os parezco un exagerado? ¿Os viene a la cabeza algún plugin especialmente desastroso en este sentido?

3 comentarios en «¡Mis tablas, ni mirarlas! – Petición para los desarrolladores de plugins en WordPress»

  1. Nada exagerado. Y en caso de necesitar echar mano de la quinta, mejor montar un servicio externo que conecte por API y que no fastidie WP.

    1. No podría estar más de acuerdo. De hecho lo que comentas es exactamente lo que hacemos en Nelio A/B testing (http://wp-abtesting.com ) para gestionar los experimentos del usuario sin tener que añadir nuevas tablas en su instalación

      1. Bueno, «nunca» es una palabra demasiado fuerte. Crear tablas nuevas puede estar totalmente justificado en algunos casos, por ejemplo si la estructura de una tabla y sus índices no encaja en la estructura e índices de ninguna de las tablas del core, aunque la verdad son casos raros, pero alguno he visto.

Deja una respuesta

No publicaremos tu correo electrónico. Los campos obligatorios están marcados con: •

He leído y acepto la Política de privacidad de Nelio Software

Al marcar la casilla de aceptación estás dando tu legítimo consentimiento para que tu información personal se almacene en SiteGround y sea usada por Nelio Software con el propósito único de publicar aquí este comentario. Contáctanos para corregir, limitar, eliminar o acceder a tu información.