Cómo integrar una tabla de base de datos personalizada en WordPress y usar funciones de WordPress
Estoy usando Wordpress 3.0.4
y tengo dificultades para decidir qué camino tomar. Este es mi problema:
Tengo una tabla de base de datos mysql
llamada widgets
, con aproximadamente 10 propiedades
como id, tamaño, color, etc.
Ahora me gustaría integrar esta tabla en Wordpress
, preferiblemente de tal manera que pueda obtener listas paginadas de los widgets
, mostrar información de un widget individual y tener un diseño flexible.
Preferentemente, me gustaría tener la capacidad de modificar una plantilla personalizada de tal manera que pueda cambiar la posición de cada propiedad en la página (Por ejemplo, tal vez me gustaría poner la propiedad-tamaño en la parte superior izquierda de la página, y más tarde podría querer ponerla en la parte inferior derecha).
¿Cuál sería la mejor manera de almacenar los widgets
, recuperarlos utilizando la mayor cantidad posible de funciones incorporadas de Wordpress
y cómo puedo obtener este diseño flexible también?
He desarrollado mis propios plugins anteriormente, así que tengo más que conocimientos básicos en Wordpress/PHP/MySQL
.

Precisamente para eso están los tipos de contenido personalizados.
Si fuera mi proyecto, eliminaría la tabla personalizada que tienes, configuraría un tipo de contenido personalizado para tus "widgets", agregaría todos tus widgets existentes como contenido regular de WordPress y usaría las funciones y plantillas estándar de WordPress para consultarlos y mostrarlos.
Requiere un poco de inversión a corto plazo (si tienes muchos datos existentes que necesitas migrar), pero a largo plazo es mejor tener todo tu contenido en las tablas estándar de WordPress y mostrarlo usando las funciones y plantillas estándar de WordPress, a menos que haya una razón realmente convincente para no hacerlo.

Gracias MathSmath, en este caso ¿quieres decir que convierta los datos de la tabla en posts? Supongo que en ese caso necesitaría usar metadatos de posts para tener flexibilidad en el diseño, ¿no?

Sí, usarías metadatos de posts para añadir cualquier número de campos personalizados (que se correlacionarían con las columnas de tu tabla) y luego, basándote en eso, crear diferentes diseños según qué "widget" tenga qué metadatos de post.

Si esta tabla está en la misma base de datos que tu instalación de WordPress, puedes usar $wpdb
para obtener datos de ella. De lo contrario, puedes instanciar tu propio objeto wpdb
con los detalles de conexión para otra base de datos.
No estoy seguro de qué quieres decir con widgets en este caso, no parece ser lo mismo que los widgets de WordPress. Como no tengo claro esto, no tengo sugerencias sobre cómo manejar la plantilla para esos elementos.

Por cierto, hemos implementado algo similar donde SÍ estamos extrayendo los datos de una fuente externa. Creamos tipos de contenido personalizados y funciones que se activan mediante diferentes hooks de WordPress, con el resultado de que podemos mostrar todo tanto a los visitantes del sitio como en wp-admin. Las publicaciones no se almacenan en wpdb, ni siquiera como publicaciones "proxy".
Así que SÍ es posible hacerlo de esa manera, aunque aún no hemos encontrado una forma de usar la papelera para eliminarlos, y terminé agregando mis propios enlaces de paginación en wp-admin usando JQuery.
A menos que tengas una muy buena razón para hacerlo de esta manera, estoy de acuerdo con @MathSmath: crea un tipo de contenido personalizado y almacénalos como publicaciones "reales" de WordPress.

Por lo que sé, lo que querías hacer se puede lograr fácilmente usando Caspio. Ni siquiera tienes que usar ninguna base de datos. Ellos proporcionan una base de datos en línea sobre la cual puedes crear todo tipo de funcionalidades basadas en bases de datos. Aquí hay un video que vi de ellos que muestra cómo construir e incrustar una base de datos de contactos buscable en un sitio de WordPress en solo unos minutos sin necesidad de codificar: https://www.youtube.com/watch?v=BgHV7ZPplo0
¡Espero que esto ayude!
