Hace unos días tuvimos otra reunión de entusiastas – desarrolladores de WordPress en Košice . Nos reunimos en Halmi caffe , esta vez también con el tema «Meta boxes personalizados».
Analizamos tres formas de crear sus propios campos de entrada en la administración de WP y agregamos algunas de nuestras propias experiencias, tipos y generadores durante la discusión. Comenzamos con el uso de las funciones clásicas de WordPress y una descripción en la documentación, continuamos con demostraciones basadas en los complementos Advanced Custom Fields y CMB2. Algunos códigos fuente al final del artículo;)
Estos campos de entrada se pueden usar para valores especiales que queremos procesar y mostrar en la página, en el artículo, perfil, producto, etc.
Según la documentación de WordPress
En esencia, WordPress tiene excelentes funciones que nos permiten personalizarlo a nuestro gusto. Uno de ellos es add_meta_box () , que usamos para crear nuestro propio campo de entrada.
De acuerdo con los parámetros ingresados, podemos especificar en qué parte de la publicación debe ubicarse el campo de entrada y también para qué tipo de publicación se utilizará (artículo, página, perfil …). Sin embargo, la función solo creará un campo para nosotros. Aún debe guardar su valor cada vez que guarde la publicación y cargarla cuando intente editarla. Nos inspiramos en la solución integral, que encontramos en los comentarios debajo de la documentación.
El valor de este campo de entrada se almacena en la base de datos en la tabla postmeta (o usermeta , etc., según el tipo de publicación) en una fila junto con el ID de la publicación y la clave meta (utilizada para distinguir varios tipos de valores). para una publicación).
Para un procesamiento posterior o visualización directa del valor en la página, recuperamos este valor de la base de datos utilizando la función get_post_meta () .
En concreto, por ejemplo, de la siguiente manera:
<?php echo get_post_meta( get_the_ID(), '_my_meta_value_key', true ); ?>
Ejemplo de resultado por página:
Uso del complemento de campos personalizados avanzados
Este complemento tiene la ventaja de que es posible hacer clic literalmente en los campos de entrada en su interfaz.
Otra ventaja es la extensa documentación y sin necesidad de mucha programación podemos crear campos de entrada para la galería, mapa, fecha y hora, etc.
Sin embargo, exagera un poco en la base de datos. Al definir primero los campos de entrada en él, los guarda como publicaciones (en la tabla de publicaciones ) y luego almacena los valores (por ejemplo, la posición del campo de entrada en la edición) en las publicaciones meta . Al guardar las ediciones de la página, nos ahorró dos filas más en la base de datos para un campo de entrada. Cuando la revisión se guardó automáticamente, había dos más.
Entonces no usamos la función clásica de WP (get_post_meta) para mostrar el valor, sino la función de complemento, por ejemplo:
<?php the_field('acf1'); ?>
Según la documentación, también podemos usar shortcode y mostrar valores en el texto del artículo.
Usando el complemento CMB2
Este complemento ya no tiene la configuración de «clic» a la que estamos acostumbrados.
Contiene clases y objetos preconstruidos que se pueden usar para crear campos de entrada personalizados que facilitan mucho la escritura. Encontramos una extensa documentación al respecto, y al igual que ACF, facilita la creación de campos para diferentes tipos de valores (fecha, hora, color, etc.).
Me gustaría llamar la atención sobre la posibilidad de agregar otro editor de texto en combinación con un repetidor (grupo), para que podamos distinguir partes del texto en la página, luego cambiar su orden y similares. También están disponibles otras extensiones disponibles gratuitamente para este complemento.
Almacena valores en la base de datos usando una línea y usa la función clásica de WP para su procesamiento (ejemplo):
<?php echo get_post_meta( get_the_ID(), '_yourprefix_text', true ); ?>
Generadores
Estos son algunos de los generadores mencionados en la reunión. Generan código que funciona con funciones básicas de WP, sin complementos adicionales.
- WordPress Meta Box Generador v2 Beta
- Generador apresurado (disponible en julio de 2017)
- GenerateWP (disponible en una versión ampliada)
Ejemplo de código utilizado para meetupe
Los paquetes incluyen:
- complemento, en el que hay ejemplos de funciones clásicas de WP y uso de CMB2 (para una funcionalidad correcta, necesita el complemento CMB2 activado)
- simplemente active el complemento y los nuevos campos de entrada aparecerán en la edición de la página
- tema de «prueba», que es un tema derivado de Twentyfifteen (para un correcto funcionamiento es necesario tener instalado el tema de Twentyfifteen )
- contiene plantillas de página con códigos para mostrar los valores almacenados
Was this article helpful for you? Support me by sharing, please. 👍