2010-10-29 14 views
16

Soy nuevo en el desarrollo de complementos. Así que por favor corrígeme, donde sea que me equivoque.Desarrollo de complementos de WordPress usando OOP

que tienen un sitio web que necesita un jugador plugin con las siguientes necesidades: -

  • Un administrador forma controlable para la inscripción de jugadores, con algunos detalles de las mismas.
  • Una página de listado donde se mostrarán todos los jugadores registrados.
  • Los jugadores registrados se pueden eliminar & en comparación entre sí.
  • Mostrando algunos jugadores registrados (10 jugadores aleatorios) en el tema de WordPress en el front-end.

que han completado la activación del complemento, junto con la creación de tablas de base de datos y administrador de menú opciones para este plugin. También completé la interfaz de registro del jugador, pero sin el código de inserción de la base de datos. Pero todos estos se han realizado de forma normal.

ahora tengo dos dolores de cabeza para completar el desarrollo de este plugin: -

  • desarrollar este plug-in en el formato de programación orientada a objetos, para el apoyo a las futuras versiones de WordPress.
  • Complete los demás requisitos de este complemento.

¿Cómo proceder con lo siguiente (incluso con un poco de conocimiento compartido)?

  • Crear un plugin de WordPress desde cero utilizando el modo OOP.
  • Llamar a un formulario web (como, para el registro del jugador) usando OOP.
  • Enviando toda esta información del jugador en la base de datos usando OOP.
  • Mostrando una página de listado (como, para jugadores registrados y posicionándolos) usando OOP.
  • Mostrando algunos jugadores en el front-end del tema de WordPress, usando cualquiera de las etiquetas de plantilla o directamente con la ayuda del complemento.

He buscado en Google, traté de encontrar algo de información en Internet acerca de estos, pero no he tenido mucho éxito con lo de OOP.

EDIT: - Será muy útil y agradable para todos nosotros (nuevo en el desarrollo plugin de WordPress programación orientada a objetos) que tener algún fragmento de código destacando su uso. Si es posible, también puede proporcionar algunos enlaces de artículos que describirán correctamente cómo escribir dichos complementos OOP.

los artículos, al igual que lo "gulbrandr" proporcionado, ha sido útil, y también me gustaría dar las gracias "kovshenin" para compartir/enlaces de mencionar algunos plugins programación orientada a objetos; pero será muy útil si se pueden proporcionar más artículos o cualquier fragmento de código, describiendo los pasos adecuados para desarrollar los complementos OOP.

+0

No ¿Hay alguien que ha hecho un buen trabajo en WordPress Plugin Dev utilizando la función de programación orientada a objetos? –

Respuesta

7

No soy un gurú, pero he estado trabajando con WordPress durante varios años y tengo bastantes complementos a mis espaldas. Su primer error que puedo señalar es

junto con la base de datos de creación de la tabla

Esto está mal. No crea tablas cuando trabaja con WordPress, el esquema predeterminado es lo suficientemente flexible como para adaptarse a cualquier cosa que tenga en mente. Incluso los complementos complicados como WP-eCommerce se están reescribiendo (o ya no se conocen) para ajustarse al esquema estándar de WordPress. Especialmente desde que WordPress 3.0 ya está disponible. Esto se ha mencionado en WordCamp a principios de este año.

Puede colocar fácilmente a sus jugadores en la tabla Usuarios. Sus atributos se pueden almacenar en la tabla Meta de usuarios, además de que podría otorgarles funciones y/o privilegios especiales.

Ahora, si realmente le gusta el OOP, debe descargar algunos plugins geniales y leer el código para ver cómo lo hacen otras personas. Como ejemplo podría mencionar uno de mis propios plugins llamados Twitter Friendly Links - no es la mejor programación orientada a objetos alrededor, pero es sin duda un comienzo;)

se puede poner encima de W3 Total Cache después, donde puedes encontrar algunas cosas muy impresionante y organización del código (gracias a Frederick Townes).

Además, algunas partes del Codex ahora muestran ejemplos en el estilo de OOP, por ejemplo, la API de widgets. ¡Espero ver más pronto y hurgar por OOP en WordPress! Es bueno que la gente haga tales preguntas, es lo que motiva a los desarrolladores centrales :)

+0

Gracias por esta información y enlaces. Definitivamente voy a mirar en él. También recordaré siempre su punto acerca de usar el esquema de base de datos de WordPress solamente. Gracias de nuevo. –

+1

No debe decir tablas "usted * no * crea". Tengo un complemento de cola de correo que usa una tabla personalizada para la cola y el esquema de WP estándar para todo lo demás. Usar 'wp_post'_meta para todos mis datos de cola de correo es al menos demasiado complejo e introduce riesgos que preferiría no tomar, especialmente con consultas de combinación demasiado complicadas entre' wp_post' y 'wp_post_meta'. Así que * hago * crear una tabla. – ProfK

+0

'No creas tablas' es algo muy incorrecto. Las tablas de Wordpress se inflan con el tiempo porque casi todos los complementos usan la estructura de la tabla de wordpress para almacenar sus datos, lo que genera problemas con sitios grandes o sitios que mantienen grandes cantidades de datos. Si utiliza tablas de WordPress y un sitio en particular tiene montones de datos almacenados en él por otros complementos o wordpress, sus consultas también se verán afectadas, incluso si su complemento usa poco almacenamiento de base de datos. Y eso es incluso antes de entrar en combinaciones complejas que un complemento avanzado puede requerir. – unity100

1

Trate de usar los tipos de publicaciones personalizadas integradas de WP y los campos personalizados/taxonomías API. Si no es suficiente para su tarea, puede intentar agregar algún ORM como, por ejemplo, Doctrine para back-end. También recientemente, he desarrollado un marco simple que proporciona algunas funcionalidades básicas para agregar un enfoque MVC a WP (enrutamiento de solicitud básico, api de generación de html y "modelo" basado en las publicaciones de wordpress y campos personalizados). No es perfecto, pero puedo compartir el código y es posible que lo ayude.

+0

En realidad, no era lo que estaba buscando, ya que tenía la intención de utilizar las funciones y la API de WordPress existentes. Pero lo que me gusta de su punto es su experimentación sobre la fusión de la estructura de MVC con WordPress, junto con Doctrine. Realmente genial - +1 –

+1

Lo que estoy ofreciendo es la extensión WP API que desarrollamos para apoyar nuestro desarrollo diario :) Si estás buscando una buena forma de estructurar tu código de complemento, presta atención a la respuesta de gulbrandr. El artículo al que hizo referencia es realmente genial y describe un enfoque realmente bueno de "una clase por función" que mantiene su código limpio. – karevn

10

A menudo descargo plugins para ver el código con la esperanza de que aprenda algo de los métodos de desarrollo y el estilo de codificación. A menudo me encuentro frustrado leyendo a través de plugins mal escritos. No es que sean malos desarrolladores, simplemente no se han enfocado lo suficiente en estilos de codificación alternativos y refinando cómo programan sus complementos. Aquí hay un paso a paso rápido sobre cómo escribo mis plugins de WordPress con la esperanza de influir en otros desarrolladores.

Pasos sobre cómo empezar a utilizar Desarrollos complemento

Paso 1 - Crear su archivo y que sea conocido como un plugin

Paso 2 - Crear los objetos de su plugin

Paso 3: agregue sus acciones y filtros

Paso 4 - Agregar configuraciones/opciones a su complemento

terminar su código

Referencia: Writing a WordPress Plugin Using Classes

+1

¿Puedes proporcionar más información (por ejemplo, cómo procedes al crear/editar un formulario de administrador, al insertar/actualizar datos en la base de datos usando una nueva tabla personalizada, al proporcionar soporte de vista de categoría para el nuevo complemento, y así sucesivamente), que no sea el enlace proporcionado? Porque el enlace solo menciona una parte del desarrollo del complemento usando OOP, y no las complejidades de las que estoy hablando. Por favor trata de entender mi requerimiento ** Si es necesario, volveré a buscar una opción de recompensa, pero necesito algunas buenas respuestas mal. ** Gracias a todos por su contribución. –

Cuestiones relacionadas