En el 谩rea de Campos personalizados, ver谩 los campos para completar los datos. El formulario es bastante simple, tiene dos campos:
- Nombre : es un nombre arbitrario para el campo personalizado. 脷salo como clave del campo personalizado.
- Valor : es el valor en el texto simple del campo personalizado.
Aunque es un campo de texto, es bastante flexible. Puede guardar cualquier dato que se pueda convertir a texto:
- Texto simple
- HTML, XML, SVG
- JSON
- Datos codificados en base64 de imagen, archivo, etc.
Este es un ejemplo de c贸mo guardar informaci贸n sobre un producto con el precio y el tipo de texto e imagen codificados en base64 de un archivo SVG:

Guardar varios valores en un campo personalizado
Despu茅s de guardar la publicaci贸n, ver谩 un cuadro adicional para elegir un nombre para los campos personalizados en lugar de crear uno nuevo. Si agregas datos a un campo personalizado existente, guardar谩 ambos valores.

C贸mo mostrar un campo personalizado
Esta parte necesitas un poco de c贸digo. Si no tienes idea de programaci贸n, puedes usar el plugin ACF. Si lo quieres hacer t煤 mismo, aqu铆 una peque帽a ayuda.
Dos funciones de uso frecuente son:
the_meta()
: muestra la lista de campos personalizados en el front-end en una lista desordenada.get_post_meta( $post_id, $key, $single )
: obtiene el valor de un campo personalizado.
Adicionalmente:
get_post_custom()
: obtiene todos los valores de los campos personalizados en una matriz de clave / valor.get_post_custom_keys()
: devuelve una matriz de todas las claves de los campos personalizados.get_post_custom_values( $key )
: devuelve una matriz de todos los valores de un campo personalizado$key
.
Tienes que llamar a estas funciones en el bucle del post.
Vamos a a帽adir el c贸digo al tema activado en WordPress. Hay 2 opciones:
- Editar el tema directamente:
- Ventaja: R谩pido
- Desventaja: los cambios se perder谩n cuando actualice el tema.
- Crear un tema hijo:
- Ventaja: los cambios NO se perder谩n cuando actualice el tema.
- Desventaja: te llevar谩 m谩s tiempo aprender sobre childs themes.
Debido a que nos estamos concentrando solo en campos personalizados, elijo editar el tema directamente.
隆Aqu铆 vamos!
MOSTRAR LA LISTA DE CAMPOS PERSONALIZADOS
Utilizo el tema Twenty Seventeen. Quiero que la lista de campos personalizados se muestre justo despu茅s del t铆tulo de la publicaci贸n tanto en el archivo como en una sola p谩gina, por lo que agrego la funci贸n the_meta()
al archivo de template-parts/post/content.php
de la siguiente manera:
<? php the_meta (); ?>
MOSTRAR UN SOLO CAMPO PERSONALIZADO
Debes obtener el valor de cada campo personalizado y mostrarlo. Utiliza get_post_meta()
para obtener un valor de campo personalizado:
get_post_meta ( $ post_id , $ clave , $ single );
Ah铆:
$post_id
: El ID de la publicaci贸n de la que deseas obtener campos personalizados.$key
: La clave del campo personalizado, tambi茅n es el valor de la columna Nombre.$single
: Defina el tipo de datos,true
para devolver un solo valor yfalse
para devolver una matriz de todos los valores
Puedes usar get_the_ID()
para obtener el ID de la publicaci贸n actual si la conoces.
Por ejemplo: Reemplace the_meta()
por el siguiente c贸digo:
<ul class="post-meta">
<li><span class="post-meta-key">Price:</span> <?php echo esc_html( get_post_meta( get_the_ID(), 'Price', true ) ); ?></li>
<li><span class="post-meta-key">Image:</span> <?php echo esc_html( get_post_meta( get_the_ID(), 'Image', true ) ); ?></li>
<li><span class="post-meta-key">Type:</span> <?php echo esc_html( get_post_meta( get_the_ID(), 'Type', true ) ); ?></li>
</ul>
En post Quite, debido a que nuestro par谩metro $single
es verdadero, el tipo de campo personalizado devuelve el primer valor (芦Hard禄) solo mientras tiene 2 unos. Para mostrar el valor Soft, editamos el c贸digo de la siguiente manera:
<ul class="post-meta">
<li><span class="post-meta-key">Price:</span> <?php echo esc_html( get_post_meta( get_the_ID(), 'Price', true ) ); ?></li>
<li><span class="post-meta-key">Image:</span> <?php echo esc_html( get_post_meta( get_the_ID(), 'Image', true ) ); ?></li>
<li><span class="post-meta-key">Type:</span> <?php echo implode( ', ', array_map( 'esc_html', get_post_meta( get_the_ID(), 'Type', false ) ) ); ?></li>
</ul>