Tutoriales de WordPress de Confianza, cuando más los necesitas.
Guía para Principiantes de WordPress
Copa WPB
25 Millones+
Sitios web que usan nuestros plugins
16+
Años de experiencia en WordPress
3000+
Tutoriales de WordPress de expertos

Cómo agregar campos personalizados automáticamente al publicar en WordPress

Crear campos personalizados automáticamente al publicar entradas de WordPress es una forma poderosa de ahorrar tiempo y reducir tareas repetitivas, especialmente si administras un sitio grande o trabajas en funcionalidades personalizadas.

En lugar de agregar manualmente los mismos campos personalizados cada vez que publicas un cierto tipo de contenido, puedes automatizar el proceso y mantener la consistencia.

Hemos trabajado en muchos proyectos de WordPress a lo largo de los años, construyendo desde blogs sencillos hasta sitios complejos con funciones avanzadas. En el camino, hemos recopilado muchos consejos prácticos como este que pueden hacer que tu flujo de trabajo sea más rápido y eficiente.

En este tutorial, te mostraremos cómo agregar campos personalizados automáticamente al publicar entradas en WordPress, paso a paso.

Cómo agregar campos personalizados automáticamente al publicar en WordPress

¿Por qué agregar campos personalizados automáticamente?

Los campos personalizados te permiten agregar información adicional a tus entradas. Esta información se puede mostrar en tu sitio web, mantenerse privada o ser utilizada por temas y plugins para extender la funcionalidad de tu sitio web de WordPress.

Hay muchas formas creativas de usar campos personalizados. Encontrarás una lista de ideas útiles en nuestra guía de consejos, trucos y hacks para campos personalizados.

En algunos casos, querrás que un campo personalizado se cree automáticamente cada vez que publiques una entrada. Esto es especialmente útil cuando estás agregando funcionalidad a WordPress para que puedas usarlo como algo más que un simple blog.

Por ejemplo, en WPBeginner, usamos este método al crear un sitio web de galerías. Queríamos almacenar URLs cortas para cada elemento enviado a la galería. Por lo tanto, creamos automáticamente un campo personalizado para almacenar la URL corta cuando se publicaba cada entrada.

Este tipo de automatización ayuda a los desarrolladores a ahorrar tiempo, reducir errores y crear sitios de WordPress más potentes con menos esfuerzo manual.

Ahora, veamos cómo configurarlo.

Agregar campos personalizados automáticamente al publicar una entrada

Este método implica agregar un fragmento de código personalizado al archivo functions.php de tu tema. No recomendamos editar los archivos de tu tema a usuarios inexpertos, ya que incluso un pequeño error podría dañar tu sitio web.

En su lugar, te mostraremos cómo usar el plugin WPCode en este tutorial.

WPCode

WPCode facilita la adición de fragmentos de código en WordPress sin tener que editar el archivo functions.php de tu tema. También puedes administrar todos tus fragmentos de código desde una pantalla central.

Si esta es la primera vez que agregas código a WordPress, deberías consultar nuestra guía sobre cómo copiar y pegar fragmentos de código en WordPress para obtener más detalles.

Para empezar, necesitas instalar y activar el plugin gratuito WPCode. Si necesitas ayuda, consulta nuestro tutorial sobre cómo instalar un plugin de WordPress.

Nota: La versión gratuita de WPCode tiene todo lo que necesitas para agregar código personalizado en WordPress. Para funciones más avanzadas como fragmentos programados, píxeles de conversión y más, puedes actualizar a WPCode Pro.

Una vez que el plugin esté activado, se agregará un nuevo elemento de menú llamado ‘Fragmentos de código’ a tu barra de administración de WordPress. Haz clic en él y luego presiona el botón ‘Agregar nuevo’ en la siguiente pantalla.

Haz clic en el botón Agregar nuevo para agregar tu primer fragmento de código personalizado en WPCode

Esto te llevará a la Biblioteca de fragmentos de WPCode.

Desde aquí, navega a la opción ‘Agregar tu código personalizado (Nuevo fragmento)’ y haz clic en el botón ‘+ Agregar fragmento personalizado’ debajo de ella.

Haz clic en el botón Agregar fragmento personalizado

A continuación, selecciona 'Fragmento de PHP' como el tipo de código de la lista de opciones que aparecen en la pantalla.

Seleccionar fragmento de PHP como tipo de código

Después de eso, deberás darle un título al fragmento, luego copiar el siguiente código y pegarlo en el cuadro 'Vista previa del código'.

add_action('publish_page', 'add_custom_field_automatically');
add_action('publish_post', 'add_custom_field_automatically');
function add_custom_field_automatically($post_ID) {
    global $wpdb;
    if(!wp_is_post_revision($post_ID)) {
        add_post_meta($post_ID, 'field-name', 'custom value', true);
    }
}

Tendrás que reemplazar 'nombre-del-campo' y 'valor-personalizado' con el nombre y valor reales que deseas usar para el campo personalizado.

Pega el fragmento de código en la caja de código de WPCode

A continuación, desplázate hacia abajo hasta la sección 'Inserción'. Aquí, deberás dejar seleccionado el método 'Inserción automática'.

Elige el método de inserción para tu fragmento de código personalizado

Con el método de inserción automática, el fragmento se insertará y ejecutará automáticamente en la ubicación correcta.

Una vez que hayas terminado, deberás cambiar el interruptor de 'Inactivo' a 'Activo' y luego hacer clic en el botón 'Guardar fragmento'.

Guarda y activa tu fragmento de código personalizado

Una vez que el fragmento esté activado, el campo personalizado se creará cada vez que publiques una entrada.

Esperamos que este tutorial te haya ayudado a aprender cómo agregar campos personalizados automáticamente al publicar una entrada en WordPress. También podrías querer aprender cómo mostrar campos personalizados fuera del bucle en WordPress o consultar nuestra lista de plugins esenciales de WordPress para hacer crecer tu sitio web.

Si te gustó este artículo, suscríbete a nuestro canal de YouTube para obtener tutoriales en video de WordPress. También puedes encontrarnos en Twitter y Facebook.

Descargo de responsabilidad: Nuestro contenido es compatible con el lector. Esto significa que si haces clic en algunos de nuestros enlaces, podemos ganar una comisión. Consulta cómo se financia WPBeginner, por qué es importante y cómo puedes apoyarnos. Aquí está nuestro proceso editorial.

El Kit de herramientas definitivo para WordPress

Obtén acceso GRATUITO a nuestro kit de herramientas: ¡una colección de productos y recursos relacionados con WordPress que todo profesional debería tener!

Interacciones del lector

18 CommentsLeave a Reply

  1. Si tengo un sitio web con varios usuarios y quiero que la biografía de un autor se inserte automáticamente cuando se publica un artículo, ¿se puede usar esta guía? Es decir, ¿se pueden usar campos personalizados para asegurar que se inserte una breve biografía del autor al principio dependiendo de quién escribe el artículo? Me gustaría que fuera así de automatizado. Actualmente, hacemos esto usando Elementor, donde cada autor tiene su plantilla guardada y debe insertarla manualmente al principio.

  2. Necesito agregar esta acción para un tipo de publicación personalizado llamado ‘ad_system’

  3. Quiero agregar el ID de categoría para la publicación en la tabla post_meta. ¿Cómo se puede modificar la función function add_custom_field_automatically($post_ID) para acomodar eso?

    Gracias

  4. En lugar de agregar el campo personalizado en el momento de crear la publicación, ¿cómo muestro un campo personalizado por defecto en la página de administración?

    • Si te fijas, el código anterior no tiene nada relacionado con los tipos de publicación personalizados. Solo se agrega al contenido de tipo ‘Post’ y ‘Page’. Por lo tanto, tendrías que especificar el hook para tu tipo de publicación personalizado.

      Administrador

      • Gracias por la respuesta. ¿Me puedes ayudar con este código.
        add_action(‘publish_page’, ‘add_custom_field_automatically’);
        add_action(‘publish_post’, ‘add_custom_field_automatically’);
        add_action( ‘save_post’, ‘add_custom_field_automatically’ );

        function add_custom_field_automatically($post_ID) {
        global $post;
        if(!wp_is_post_revision($post_ID)) {
        global $wpdb;
        $user_id = $wpdb->get_var("SELECT post_author FROM $wpdb->posts WHERE ID = $post_ID");
        $themename = $wpdb->get_var("SELECT meta_value FROM $wpdb->usermeta WHERE meta_key = ‘themeperauthor’ AND user_id = $user_id");
        add_post_meta($post_ID, ‘themeperauthor’, $themename, true);
        }
        }
        Cuando se cambia el campo meta del usuario, quiero eliminar automáticamente el valor del campo personalizado y actualizarlo con el nuevo.

  5. He estado trabajando en agregar algunos campos personalizados ocultos al publicar/actualizar una entrada (precediendo el nombre del campo con “_”), pero por alguna razón tengo que actualizar la entrada dos veces antes de que las entradas de wp_postmeta se escriban en la base de datos.

    He intentado modificar la prioridad y experimentar con otros action hooks (draft_to_publish, edit_post, etc.) pero no parece hacer ninguna diferencia.

    ¿Alguna idea?

  6. ¿funcionará esto también para tipos de publicación personalizados?
    algo como add_action(‘publish_custom-post-typ-name’, ‘add_custom_field_automatically’);

    • Sí, lo hará.

      Una desventaja de esta técnica de la que la gente debería ser consciente es que si alguien edita una publicación publicada, este hook SE DISPARARÁ de nuevo en la edición. Por lo tanto, necesitas verificar los metadatos antes de agregarlos, o actualizarlos, o hacer lo que tenga más sentido para tu caso de uso.

      Si solo quieres que tu código se active solo en la publicación inicial, entonces puedes usar el hook transition_post_status. Este hook funciona así:


      add_action('transition_post_status','example',10,3);
      function example($new, $old, $post) {
      // $new es el nuevo estado de la publicación ('publish')
      // $old es el estado anterior de la publicación ('draft')
      // $post es el objeto de publicación completo (así que usa $post->ID para el ID, etc.)
      }

      Luego, aquí puedes hacer una verificación para algo como esto:

      if ($new == 'publish' && $old != 'publish')

      Para que tu código solo se use cuando el estado de la publicación realmente transiciona a publicado desde lo que era antes. Este hook se dispara al mismo tiempo que los hooks {$status}_{$post-type}, por lo que su operación es básicamente la misma.

Deja una respuesta

Gracias por elegir dejar un comentario. Ten en cuenta que todos los comentarios son moderados de acuerdo con nuestra política de comentarios, y tu dirección de correo electrónico NO será publicada. Por favor, NO uses palabras clave en el campo del nombre. Tengamos una conversación personal y significativa.