Cómo crear y usar campos personalizados de WordPress

Publicado: 2020-04-23

Una de las principales ventajas de WordPress es su versatilidad, que es posible gracias a sus funciones de extensibilidad integradas. Entre las diferentes fórmulas de extensión que ofrece encontramos campos personalizados :

WordPress tiene la capacidad de permitir que los autores de publicaciones asignen campos personalizados a una publicación. Esta información adicional arbitraria se conoce como metadatos .

Los metadatos se manejan con pares clave/valor . La clave es el nombre del elemento de metadatos. El valor es la información que aparecerá en la lista de metadatos en cada publicación individual con la que está asociada la información.

Documentación de WordPress.org

Por ejemplo, si queremos crear metadatos sobre conceptos relacionados con el mundo del motor, tendríamos cosas como:

  • Marca : Ford
  • Modelo : Enfoque
  • Color : blanco
  • Potencia : 110cv
  • etc.

En la publicación de hoy, le mostraré cómo crear campos personalizados, cómo usarlos y cómo pueden ayudarlo como usuario y/o desarrollador de WordPress. Tenga en cuenta que necesitará tener una comprensión básica de cómo codificar en WordPress... pero espero que pueda seguir la publicación fácilmente, especialmente cuando le muestre cómo usar un complemento increíble para trabajar con campos personalizados: Campos personalizados avanzados.

Cómo funcionan los campos personalizados de WordPress

La mejor manera de comprender qué son los campos personalizados y cómo funcionan es echar un vistazo a la base de datos de WordPress. Como ya sabrás, cada vez que creas una publicación, página o (casi) cualquier otro tipo de contenido en WordPress, este nuevo contenido se almacena en una tabla llamada wp_posts (el prefijo puede cambiar).

Las tablas de una base de datos son como cualquier otra tabla con la que haya trabajado anteriormente. Básicamente, tienen un conjunto de columnas que definen “lo que puedes almacenar” y filas con la información específica. En el caso de wp_posts , las columnas son elementos como título , contenido , autor , fecha de publicación , etc. Nada lujoso, para ser honesto:

tabla wp_posts en una base de datos de WordPress.
tabla wp_posts en una base de datos de WordPress.

Uno de los “problemas” de usar tablas es que la información que puedes almacenar en ellas se limita a las columnas que tienen. Si desea almacenar información sobre un nuevo concepto, no podrá hacerlo. Entonces, ¿cómo puede crear campos personalizados si la tabla ya está configurada? Bueno, bastante simple, solo necesita una nueva mesa diseñada para ello.

En cada base de datos de WordPress hay otra tabla llamada wp_postmeta como la siguiente:

tabla wp_postmeta en la base de datos de WordPress.
tabla wp_postmeta en la base de datos de WordPress.

Como puede ver en la captura de pantalla anterior, la tabla de metadatos está diseñada de tal manera que podemos crear pares clave/valor usando las columnas meta_key y meta_value y asociar cada par con un contenido específico usando la columna post_id . ¡Suficientemente fácil!

¡Así que echemos un vistazo más de cerca a cómo podemos trabajar con esta tabla!

Cómo crear un nuevo campo personalizado

Como ya hemos visto, los campos personalizados siempre están asociados a una publicación específica. Por lo tanto, esperaría algún tipo de interfaz de usuario en el editor para, bueno, editarlos, ¿verdad? Desafortunadamente, si echas un vistazo a Gutenberg, no hay ningún...

Para editar campos personalizados en el editor de WordPress, debe habilitar un panel avanzado. Simplemente haga clic en el icono superior derecho en el editor y luego haga clic en Opciones :

Configuración de Gutenberg
Configuraciones de Gutenberg.

Esto abrirá una nueva ventana con los diferentes paneles que están disponibles en Gutenberg. Encuentre uno llamado Campos personalizados y actívelo:

Cómo activar campos personalizados en Gutenberg
Cómo activar campos personalizados en Gutenberg.

Una vez habilitado, puede crear y editar fácilmente los campos personalizados de su publicación:

Campos personalizados en Gutenberg
Campos personalizados en Gutenberg.

Esta sencilla interfaz nos permite crear tantos pares clave/valor como queramos. En la captura de pantalla anterior, por ejemplo, ves cómo he añadido algunos de los campos que introduzco al principio de este post: nelio_brand , nelio_model , nelio_color y nelio_hp .

Cómo usar un campo personalizado

Para usar un campo personalizado, necesita tres cosas: (a) el identificador de una publicación, (b) el nombre del campo que desea usar y (c) decidir dónde desea usarlo. Por ejemplo, supongamos que quiero mostrar el campo nelio_brand que creamos en el ejemplo anterior al final de una publicación. Para recuperar su valor, hay una función llamada get_post_meta que podemos usar de la siguiente manera:

 function nelio_add_brand_field( $content ) { $brand = get_post_meta( get_the_ID(), 'nelio_brand', true ); return "{$content}\n<p><strong>Brand:<strong> {$brand}</p>"; } add_filter( 'the_content', 'nelio_add_brand_field' );

Tenga en cuenta que en el ejemplo anterior abordamos las tres cosas que mencioné antes:

  • El primer parámetro de get_post_meta es precisamente el identificador de la publicación que me interesa. En este caso, usamos get_the_ID() , que devuelve el ID de la publicación actual.
  • El segundo parámetro es el nombre de nuestro metacampo (en este caso, nelio_brand ).
  • Finalmente, estamos usando el campo meta en el front-end, como algo que queremos mostrar al final del contenido de la publicación. Y puedes darte cuenta porque lo estoy recuperando y usando durante el filtro the_content .

El resultado de hacer esto es algo similar a lo que puedes ver en la siguiente captura de pantalla:

Captura de pantalla de una publicación que muestra un campo personalizado justo después de su contenido.
Captura de pantalla de una publicación que muestra un campo personalizado justo después de su contenido.

¡Pero esto es solo un ejemplo, por supuesto! Puede usar los campos personalizados de muchas maneras además de "imprimir algo en el front-end". Por ejemplo, Nelio A/B Testing es uno de los complementos que hemos creado y está diseñado para ejecutar pruebas divididas en un sitio de WordPress. Una prueba A/B requiere la creación de contenido alternativo, y nuestro complemento utiliza campos personalizados para etiquetar el contenido alternativo como tal y limita cómo y cuándo un visitante puede acceder a este contenido.

Funciones de WordPress para administrar campos personalizados

De la misma manera que tenemos un método para recuperar el valor de un campo personalizado ( get_post_meta ), WordPress tiene métodos adicionales para crear, actualizar y eliminar campos personalizados mediante programación: add_post_meta , update_post_meta y delete_post_meta . Estas funciones funcionan como es de esperar, así que no te molestaré con más explicaciones...

Qué es y cómo usar los Campos personalizados avanzados

Ahora que sabe cómo funcionan los campos personalizados en WordPress, creo que ya puedo darle la buena noticia: ¡hay varios complementos que simplifican enormemente el proceso de trabajar con campos personalizados!

Uno de los complementos más conocidos y mejor valorados para crear metadatos en un sitio de WordPress es Advanced Custom Fields. Con él, no sólo podrás definir campos personalizados de una forma más sencilla, sino que también tendrás la posibilidad de disfrutar de una interfaz de usuario mejorada para el tratamiento de estos campos. Esta interfaz se asegura de que los valores que establezca tengan sentido y sean semánticamente significativos: fechas, imágenes, galerías, rangos, números... ¡lo que sea!

Captura de pantalla del complemento de campos personalizados avanzados
Captura de pantalla del complemento Campos personalizados avanzados.

Si desea obtener más información sobre ACF, hay muchos recursos disponibles. Pero creo que esta charla de Jo Minney realmente puede ayudarlo a comenzar:

¡Con suerte, esta pequeña introducción a los campos personalizados lo ayudará a convertirse en un mejor desarrollador de WordPress!

Imagen destacada de Polina Rytova en Unsplash.