En este punto de la serie, estamos finalmente capaz de comenzar a construir nuestro complemento utilizando las técnicas orientadas a objetos que hemos aprendido hasta ahora en la serie.
Si solo te unes a nosotros, te recomiendo que te pongas al día con la serie hasta ahora; de lo contrario, corre el riesgo de perderse algunos de los puntos clave que vamos a demostrar a medida que desarrollamos el complemento en los próximos artículos..
Muy bien, entonces con eso dicho, finalmente es hora de comenzar a escribir código. Antes de comenzar, es importante comprender que la creación de un complemento, o cualquier tipo de software, requiere una serie de pasos, y aunque vamos a escribir un poco de código en este artículo en particular, no lo haremos. agregando mucha funcionalidad hasta que tengamos el andamiaje o la base del complemento.
Para hacer eso, necesitamos revisar varias cosas:
Así que vamos a cubrir esos puntos muy rápido, y luego entraremos en los detalles del complemento.
A lo largo de los próximos artículos, construiremos un complemento que introduce un cuadro de meta en la vista del editor de publicación única que muestra todos los metadatos asociados con la publicación actual..
El plugin será de solo lectura ya que solo puedes ver Los metadatos asociados con el complemento. No podremos introducir nuevos metadatos, al menos no para la primera versión..
Las otras características son que lo mostrará en un formato limpio y organizado para que podamos identificar fácilmente la clave y los valores para la ID de la publicación. También presentaremos un ancla que nos permitirá copiar una línea de código que nos permitirá hacer una llamada a la información en forma de get_post_meta ($ post_id, $ meta_key, $ meta_value);
.
Antes de continuar, hay muchas características interesantes que podríamos implementar en este complemento..
Podríamos introducir la capacidad de:
Pero de acuerdo con la filosofía de crear un "fuerte 1.0", estaremos construyendo una base ágil y enfocada en la que podemos continuar desarrollando el complemento como lo consideremos adecuado después de esta serie..
Tal vez cubriremos algunas de las características anteriores antes del final de la serie, tal vez desee presentar su propio conjunto de características. De cualquier manera está bien. La conclusión es que vamos a construir un núcleo sólido a partir del cual podemos continuar iterando para expandir la funcionalidad.
Así que con todo lo dicho, primero hablemos de los puntos altos del complemento, luego veremos cómo organizaremos los archivos y los componentes del complemento..
¿Suena confuso? Esperamos que ver y echar un vistazo a la estructura del archivo y al código de muestra básico ayude a que esto siga teniendo más sentido..
Dicho esto, echemos un vistazo de alto nivel a los componentes que interactuarán entre sí, luego analizaremos cómo se organizarán los archivos. Después de eso, nos pondremos en contacto con el código del complemento que completaremos en el siguiente artículo..
Específicamente, el complemento constará de los siguientes componentes (o archivos) que conformarán la fuente del complemento. Después de echar un vistazo a la lista de archivos, vamos a echar un vistazo a un diagrama de cómo interactúan todas las piezas.
single-post-meta-manager.php
es el archivo principal, registra el plugin con WordPress y pone todo en movimiento.class-single-post-meta-manager-admin.php
es el archivo responsable del registro y la puesta en cola de las hojas de estilo, así como de mostrar los elementos de la interfaz de usuario que contendrán los metadatos posteriores..single-post-meta-manager-admin.css
es la hoja de estilo que estilizará la interfaz de usuario.class-single-post-meta-manager-loader.php
es el archivo que coordinará las acciones y los filtros entre el complemento principal y la clase de administración.class-single-post-meta-manager.php
es el archivo principal del complemento que mantiene la información de la versión del complemento, la información de la barra del complemento, las referencias al cargador y el archivo en el que le indicamos al cargador qué objetos y funciones son responsables de mostrar la interfaz administrativa del usuario.README.md
proporciona las instrucciones habituales sobre cómo comenzar con el complemento.CAMBIOS.md
proporciona una lista de los cambios que se producen en cada versión del complemento que lanzamos.Dependiendo de su nivel de experiencia con la programación orientada a objetos, esto puede o no parecer una gran cantidad de archivos para un conjunto de funciones relativamente simple; sin embargo, aún hay más: no vamos a colocar todos estos archivos en la raíz del directorio del complemento.
En su lugar, vamos a ir un paso más allá y organizar las cosas en directorios apropiados, también. Una vez que revisemos eso, veremos la organización de los componentes en forma de diagrama y luego revisaremos el código que proporciona los andamios para el complemento..
La organización de archivos es relativamente simple y probablemente se demuestre mejor a través del uso de una imagen:
Para que quede claro, aquí está el desglose de lo que ve en la captura de pantalla anterior:
admin / class-single-post-meta-manager-admin.php
admin / css / single-post-meta-manager.admin.css
incluye / class-single-post-meta-manager-loader.php
incluye / class-single-post-meta-manager.php
idiomas /
single-post-meta-manager.php
CAMBIOS.md
README.md
LICENCIA.txt
Es importante reconocer esto y hay un par de lugares en el código donde vamos a registrar las dependencias y es importante saber dónde Las dependencias son para que podamos proporcionarles los caminos adecuados..
En este punto, estamos listos para comenzar a eliminar las clases que vamos a usar. Hay varias cosas importantes que debes tener en cuenta sobre el código que estás a punto de ver:
Dicho esto, si tiene preguntas sobre el código, no dude en dejar comentarios al respecto; Sin embargo, puedo decir que espere hasta el próximo artículo para ver la respuesta..
Ahora, al código.
El archivo del complemento del núcleo es responsable de registrar el complemento con WordPress y, en última instancia, será responsable de importar la clase del complemento del núcleo (que revisaremos en un momento), y de configurar el complemento en movimiento..
Tenga en cuenta que el condicional que tenemos al final del archivo. Esto asegurará que no se pueda acceder al archivo del complemento directamente desde el navegador web.
Archivos Administrativos
Todos estos archivos residen en el
administración
directorio como se indica arriba.La clase de administrador de Meta Manager de un solo puesto
Esta clase encolará la hoja de estilo y renderizará el meta box que se usará para mostrar el meta dado..
version = $ version; public function enqueue_styles () public function add_meta_box ()En esta clase, observe que tiene un único atributo protegido para el
$ versión
del plugin. Este atributo se configura en el constructor de la clase..Veremos cómo encaja esto más adelante en el código..
La hoja de estilo de Meta Manager de un solo mensaje
En este momento, no hay código que mostrar para este archivo en particular; sin embargo, adelante y agréguelo a la
admin / css
subdirectorio ya que es lo que eventualmente usaremos para diseñar el panel de control.Incluye
Estos son archivos de complementos principales que son responsables de coordinar la información entre los diversos enlaces y el área administrativa del complemento..
Cargador de Meta Manager de un solo puesto
Esta clase será utilizada por la clase de complemento principal para coordinar todos los enlaces que existen en el complemento y la clase administrativa que definimos anteriormente.
Tenga en cuenta que en la clase anterior, hemos marcado los atributos como
protegido
. Esto se hace para que esta clase tenga acceso a sus atributos, pero ninguna otra clase sí..Además, hemos seguido adelante y hemos hecho esto en caso de que clasifiquemos esta clase en particular en una futura iteración del complemento..
Post Manager de un solo post
Finalmente, tenemos que la clase de complemento principal es responsable de cargar las dependencias, establecer la configuración regional y coordinar los enlaces..
plugin_slug = 'single-post-meta-manager-slug'; $ this-> version = '0.1.0'; private function load_dependencies () private function define_admin_hooks () public function run () public function get_version () return $ this-> version;Aviso en el código anterior, tenemos adicional
protegido
atributos, un par deprivado
funciones, y unpúblico
función utilizada como captador que utilizaremos a medida que continuemos desarrollando el complemento.En el siguiente artículo, pasaremos mucho tiempo en esta clase, ya que este es el punto de entrada para la mayoría de las funcionalidades..
A continuación
Hemos cubierto mucho material en este artículo, pero obviamente hay mucho más que hacer. Además de proporcionar documentación para nuestras funciones, necesitamos implementar una funcionalidad que dé vida a este andamio.
En el siguiente artículo de la serie, vamos a hacer precisamente eso, después de lo cual centraremos nuestra atención en documentar el código..
Como se mencionó anteriormente, siéntase libre de dejar cualquier pregunta y / o comentario sobre el código anterior. Para aquellos que estén interesados, siempre puede navegar el estado actual del proyecto en GitHub.
Hasta el próximo artículo.!