Cómo usar tus propios campos personalizados en WordPress (y 5 ejemplos útiles) trucos CSS

Un campo personalizado en WordPress es cualquier dato que se puede aplicar a publicaciones, páginas y tipos personalizados de publicaciones en WordPress. Metadatos, por así decirlo, en forma de pares clave/valor. Por ejemplo:

  • llave: subtitle / valor: They are more than they are cracked up to be
  • llave: header_color_override / valor: #e52e05
  • llave: property_url / valor: https://example.com/123

WordPress tiene su propia documentación Esta función, así que no quiero duplicarla. Solo quiero mostrarles básicamente qué son los campos personalizados en WordPress, cómo funcionan, cómo usarlos y algunos usos de mi experiencia personal.

📑 Aquí podrás encontrar 👇

contenido

Cómo agregar/editar/eliminar campos personalizados en WordPress

La interfaz de usuario de campo personalizado en WordPress se ve así:

Si no lo ve, es posible que deba ir al menú de tres elementos "Preferencias" y encontrar el interruptor de Campos personalizados y activarlo.

Muestra la opción para habilitar campos personalizados en WordPress en la configuración de preferencias del Editor de bloques.  Este es el primer interruptor en Configuración avanzada.
La interfaz de usuario lo obliga a actualizar la página cuando activa y desactiva esta función.

Para agregar un campo personalizado, ingrese una clave (etiquetada como "Nombre") y un valor, y luego haga clic en Agregar campos personalizados.

Muestre un campo personalizado en WordPress llamado comida_favorita y el valor del burrito.  Debajo de la entrada de nombre hay un botón para agregar un campo personalizado.

Una vez agregado, puede eliminarlo o actualizarlo desde el botón clave / nombre:

Muestre un campo personalizado en WordPress llamado comida_favorita y el valor del burrito.  Debajo del nombre hay dos botones para eliminar o actualizar el campo personalizado.

Al usar campos personalizados, las teclas formarán un menú desplegable para facilitar la selección.

Muestra el menú desplegable que se abre cuando especifica la hora en el campo de nombre del campo personalizado en WordPress, que le permite seleccionar un campo personalizado existente.

¿Por qué usar campos personalizados?

campos personalizados, así como tipos de publicación personalizados, ¿Qué hace WordPress? Sistema de gestión de contenidos Funciona de forma no estándar, no se limita a una simple plataforma de blogs.

Lo crea o no, en CSS-Tricks usamos más de 100 campos personalizados para hacer diferentes cosas en este sitio. más fácil Algo, esto es genial porque es una característica básica de WordPress que continuará funcionando para siempre sin preocuparse demasiado por la compatibilidad o el deber técnico inconveniente.

La idea más grande es Posibilidad de abrir plantillasImagina que tienes una página de listado de bienes raíces con:

  • habla a
  • Precio anunciado
  • dormitorio
  • cuarto de baño
  • etc

Con campos personalizados, puede proporcionar toda la información como pequeños datos discretos que puede repetir (es decir, mostrar) en la plantilla de su página, donde lo necesite. es mas flexible Luego incluye todos los datos en el contenido de la propia publicación, incluso con el editor de bloques.

Ejemplo de uso de un campo personalizado de WordPress

¡Los campos personalizados en WordPress se pueden usar para muchas cosas diferentes! Pero veamos cinco casos de uso del mundo real que hemos implementado en CSS-Tricks.

1. Mostrar información adicional

Supongamos que está publicando un video y desea mostrar el tiempo de reproducción de ese video. Es como guardar running_time como un campo personalizado y mostrarlo donde quieras:

Las publicaciones publicadas a la izquierda están una al lado de la otra, el tiempo de ejecución del video está en rojo y el administrador de WordPress a la derecha muestra exactamente la misma información que el cuadro de ejecución personalizado incluido en el editor de bloques está publicado en el texto.
Eche un vistazo a los otros campos personalizados que se usan aquí, como youtube los campos que tenemos para que podamos generar

2. Ocultar/mostrar diferentes contenidos/características

Digamos que desea poder reducir el tamaño del área de comentarios. algunas veces en otra publicación de blog. Puede establecer un campo personalizado llamado should_toggle_comments y establecer un valor trueHacemos esto en CSS-Tricks. En nuestro comments.php plantilla, mostramos un <ol> en todos los comentarios, pero si existe este campo personalizado, envolvemos todo en un <details> elemento, reducirlo por defecto:

<?php if (get_post_meta($post->ID, 'should_toggle_comments', true)) { ?>
<details class="open-all-comments">
  <summary>Toggle All Comments (there are a lot!)</summary>
  <?php } ?>

    <ol class="commentlist" id="commentlist">
      <?php wp_list_comments('type=comment&avatar_size=512&callback=csstricks_comment'); ?>
    </ol>

  <?php if (get_post_meta($post->ID, 'should_toggle_comments', true)) { ?>
  </details>
<?php } ?>

3. Oferta especial de descarga

Supongamos que tiene un archivo especial de categorías que muestra un grupo de publicaciones que contienen la misma categoría, luego use una plantilla personalizada para esa categoría, p. category-fancypants.phpTal vez descargar personalizado cita de cada artículo como un campo personalizado llamado main-pullquote:

<blockquote>
  <?php
    echo get_post_meta($post->ID, 'main-pullquote', true);
  ?>
</blockquote>

Esto es lo que hicimos para nuestra serie anual al final del año:

Los principales campos de descarga personalizados en WordPress se muestran uno al lado del otro, rodeados de rojo, y el archivo de categorías a la derecha tiene una flecha roja que apunta al enlace de descarga correspondiente que se muestra en la página.

Hemos creado varias fuentes RSS totalmente personalizadas de trucos CSS que son diferentes de WordPress fuera de la caja - uno para el video y otro para el boletín. En particular, el feed de video se basa en algunos campos personalizados de WordPress para mostrar los datos especiales necesarios para que el feed sea la fuente de nuestro podcast de video.

La plantilla de video RSS en el código de la izquierda se muestra una al lado de la otra, la sección de campos personalizados está encerrada en rojo, la fuente RSS se abre en el navegador a la derecha y la flecha apunta a donde aparece el código como un archivo adjunto de video. .
La posición y la duración del video se registran en campos personalizados

5. Ocultar/mostrar autor

Nuestras publicaciones patrocinadas de CSS-Tricks a veces suenan como anuncios corporativos. Están escritos de esta manera a propósito y pueden haber sido escritos por muchas personas en el momento de la publicación real. Publicaciones como esta realmente no necesitan ser "por nadie". Pero a veces, una publicación patrocinada definitivamente está escrita por una persona específica, a veces incluso por una primera persona, lo que sería extraño si no se mostrara la atribución. showSponsorAuthor Campo personalizado para mostrar este autor cuando lo necesitemos.

<div class="sponsored-post-byline">
  ❥ Sponsored
  <?php if (get_post_meta($post->ID, 'showSponsorAuthor', true)) { ?>
    (Written by <?php the_author(); ?>)
  <?php } ?>
</div>

Lo anterior es parte de la plantilla. Siempre marcamos las publicaciones patrocinadas como patrocinadas en el orden del autor (ejemplo), pero solo podemos mostrar opcionalmente al autor (ejemplo) visualmente, controlado por un campo personalizado.

API para mostrar campos personalizados en WordPress

La mayoría de las veces desea mostrar el valor de un campo:

<?php echo get_post_meta($post->ID, 'mood', true); ?>

Ese true El final significa "dame". único valor "significa que incluso si hay varios campos personalizados con el mismo nombre, solo obtendrá uno. Para obtener varios con el mismo nombre, use false, tal como:

<?php $songs = get_post_meta($post->ID, 'songs', false); ?>
<h3>This post inspired by:</h3>
<ul>
  <?php foreach($songs as $song) {
    echo '<li>'.$song.'</li>';
  } ?>
</ul>

Si solo quiere tirarlos a la basura (probablemente principalmente para la depuración), puede hacer:

<?php the_meta(); ?>

Tenga en cuenta, sin embargo, que esto omite los campos personalizados que comienzan con un guión bajo (_), por lo que es posible que desee considerar el uso de este enfoque.

Consultar campos personalizados en WordPress

Suponga que desea solicitar todas las publicaciones con un campo personalizado específico. ¡Esto es posible!

<?php
$the_query = new WP_Query(array(
  'meta_key' => 'example_field_name'
  'meta_value' => 'example_field_value' // as a string! 
));

if ($the_query->have_posts()) {
  while ($the_query->have_posts()) {
    $the_query->the_post();
    echo '<div>' . get_the_title() . '</div>';
  }
}

wp_reset_postdata();

El ejemplo anterior tendrá ambos campos personalizados para example_field_name y el valor de este campo es example_field_valuePuedes hacer/o.

Puedes hacer mucho más aquí. Puede usar comparaciones, puede obtener valores como números e incluso puede consultar varios campos a la vez. Cubrimos todo en detalle en bucles personalizados/consultas basadas en campos personalizados.

Restringir campos personalizados en el menú desplegable de nombres

Los menús desplegables de la interfaz de usuario para los campos personalizados existentes en WordPress están limitados a 30 campos. Entonces, si tiene más de 100 claves diferentes, el menú desplegable se verá acortado aleatoriamente. Puede usar un filtro para aumentar este número functions.php o complemento:

function customfield_limit_increase( $limit ) {
  $limit = 150;
  return $limit;
}
add_filter( 'postmeta_form_limit', 'customfield_limit_increase' );

¿Alguna otra pregunta para el editor de bloques?

El problema principal es cuando no ve la interfaz personalizada de los campos personalizados. Hemos explicado cómo volver a activarlo (ya que probablemente esté desactivado de forma predeterminada), así que asegúrese de comprobarlo. Complemento para campos personalizados avanzados también lo apagará, por lo que si está usando el complemento, tenga en cuenta que hay una línea a continuación que puede ayudarlo a volver a encenderlo (si está usando ambos, como hicimos nosotros).

Además, no estoy seguro de si existe una forma estándar de mostrar el valor de un campo personalizado en un bloque en el editor de bloques. Si conoce una manera clara, ¡por favor deje un comentario!

Enlace a campos personalizados avanzados

La interfaz de usuario para los campos personalizados de WordPress está bastante... desatendida. No es obligatorio, hay bordes ásperos (encontramos que los campos personalizados tienen una forma extraña de duplicación, como múltiples grabaciones de publicaciones). Los márgenes personalizados, aunque naturales, no parecen ser una característica de primer nivel de WordPress.

Campos personalizados avanzados (ACF) ha cambiado mucho. El espíritu sigue siendo el mismo: añadir datos al contenido. Sin embargo, a diferencia de la sencilla interfaz clave-valor basada en cadenas que describimos en detalle, básicamente puede modelar datos con diferentes tipos y crear una interfaz de usuario personalizada muy agradable para ingresar esos datos e incluso integrarse directamente con el editor de bloques.

Imagine un sitio web de podcasts donde cada publicación es un episodio separado. Sin embargo, el editor de bloques puede trabajar en el contenido escrito de un episodio. es posible que no funcione con todos los metadatos que lo acompañan. Lista de invitados, duración, ubicación de archivos MP3, patrocinadores, enlaces de salto de tiempo, etc. Los campos personalizados son geniales para esto, pero como hay tantos, los campos personalizados avanzados aquí le servirán bien con los campos personalizados naturales en WordPress.Aquí hay un ejemplo de cómo configurar dónde estamos ShopTalk Show Podcast:

Muestre la configuración de márgenes personalizados en el complemento Campos personalizados avanzados a la izquierda y los márgenes personalizados que se muestran a la derecha en el Editor de bloques de WordPress para nuevas publicaciones.

La ACF probablemente eliminó la interfaz de campos personalizados personalizados para alentar el uso directo en lugar de confundir a las personas con la interfaz de campos personalizados personalizados. Si usa ambos tipos de campos como nosotros, debe usar los filtros proporcionados por ACF para devolver su propia interfaz de usuario de campo al editor de publicaciones:

add_filter('acf/settings/remove_wp_meta_box', '__return_false');

Si usa sus propios campos personalizados en WordPress, querrá functions.php archivo o complemento funcional.

Nota para los desarrolladores de complementos

Usa técnicas de resaltado.

Algunos complementos usan la API de campos personalizados como un lugar para almacenar datos específicos de publicaciones. No creo que importe, pero me gustaría pedirles a los desarrolladores de complementos que siempre usen nombres de campos personalizados con guiones bajos y prefijos de complementos al hacerlo.

Cuando los campos personalizados comienzan con un guión bajo, no aparecen en la interfaz de usuario. Para aquellos de nosotros que trabajamos directamente con la interfaz de usuario de campos personalizados, esto significa que no estará abarrotada de campos creados por otros complementos. La excepción, por supuesto, es si desea que los usuarios puedan controlar lo que hace el complemento con valores de campo personalizados. En este caso, bueno, deje estos pocos campos sin el prefijo de subrayado.

_bobs_plugin_internal_value_1 // Hidden in UI
_bobs_plugin_internal_value_2 // Hidden in UI
bobs_plugin_config  // Shows in UI

_adrians_plugin_internal_value_1  // Hidden in UI
_adrians_plugin_internal_value_2 // Hidden in UI

Más ejemplos del uso de campos personalizados en WordPress

¿Para qué los utiliza?

¿Estás usando campos personalizados en WordPress? Tengo mucha curiosidad. local Utilice campos personalizados.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir