Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
Copa WPB
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

Cómo añadir campos personalizados automáticamente al publicar una entrada en WordPress

Nota editorial: Ganamos una comisión de los enlaces de socios en WPBeginner. Las comisiones no afectan a las opiniones o evaluaciones de nuestros editores. Más información sobre Proceso editorial.

¿Necesitas crear automáticamente campos personalizados al publicar tus entradas en WordPress?

Se trata de un sencillo truco que los desarrolladores pueden utilizar al añadir nuevas características a su sitio web en WordPress.

En este artículo, le mostraremos cómo añadir campos personalizados automáticamente en la publicación de entradas en WordPress.

How to Add Custom Fields Automatically on Post Publish in WordPress

¿Por qué añadir campos personalizados automáticamente?

Loscampos personalizados te permiten añadir información adicional a tus entradas. Esta información puede mostrarse en su sitio web, mantenerse en privado o ser utilizada por temas y plugins para ampliar la funcionalidad de su sitio web WordPress.

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

A veces querrás que un campo personalizado se cree automáticamente cada vez que publiques una entrada. Esto es especialmente cierto cuando estás añadiendo funcionalidad a WordPress para que puedas usarlo como algo más que un simple blog.

Utilizamos este método para crear el sitio web de una galería. Queríamos almacenar URLs cortas para cada elemento / artículo enviado a la galería. Así que creamos automáticamente un campo personalizado para almacenar la URL corta cuando se publicaba cada entrada.

Este truco puede ser muy útil para los desarrolladores que quieran llevar WordPress al siguiente nivel.

Añadir campos personalizados automáticamente al publicar una entrada

Este método consiste en añadir un fragmento de código personalizado al archivo functions.php de tu tema. No recomendamos la edición de los archivos de tu tema a usuarios sin experiencia, ya que incluso un pequeño error podría romper tu sitio web.

En su lugar, en este tutorial le mostraremos cómo utilizar el plugin WPCode.

WPCode

WPCode facilita añadir fragmentos de código en WordPress sin tener que editar el archivo functions.php de tu tema. También puede gestionar todos sus fragmentos de código desde una pantalla central.

Si es la primera vez que añade código a WordPress, debería comprobar nuestra guía sobre cómo copiar y pegar fragmentos de código en WordPress para 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 añadir código personalizado en WordPress. Para obtener características más avanzadas como fragmentos de código programados, píxeles de conversión y mucho más, puedes actualizar a WPCode Pro.

Una vez activado el plugin, se añadirá un nuevo elemento / artículo de menú llamado ‘Fragmentos de código’ a su barra de administrador de WordPress. Haga clic en él y, a continuación, pulse el botón “Añadir nuevo” en la pantalla siguiente.

Click the Add New Button to Add Your First Custom Code Snippet in WPCode

Desde aquí, vaya a la opción “Añadir su código personalizado (nuevo fragmento)” y haga clic en el botón “Usar fragmento” situado debajo.

Add your new custom code snippet in WPCode

A continuación, debe dar un título al fragmento de código y 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á que sustituir “nombre de campo” y “valor personalizado” por el nombre y el valor reales que desee utilizar para el campo personalizado.

No olvide elegir “Fragmento de código PHP” como tipo de código en el menú desplegable de la derecha.

Paste code snippet in WPCode code box

A continuación, desplácese hasta la sección “Inserción”. Aquí tendrá que dejar seleccionado el método de “Inserción automática”.

Pick the insertion method for your custom code snippet

Con el método Auto Insertar, el fragmento de código se insertará automáticamente y se ejecutará en el lugar adecuado.

Una vez hecho esto, tendrás que cambiar el conmutador de “Inactivo” a “Activo” y, a continuación, hacer clic en el botón “Guardar fragmento de código”.

Save and activate your custom code snippet

Una vez activado el fragmento de código, el campo personalizado se creará cada vez que publique una entrada.

Esperamos que este tutorial te haya ayudado a aprender cómo añadir campos personalizados automáticamente en la publicación de entradas en WordPress. Puede que también quieras aprender a elegir el mejor alojamiento WordPress o comprobar nuestra lista de plugins WordPress imprescindibles para hacer crecer tu sitio web.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

Descargo: Nuestro contenido está apoyado por los lectores. Esto significa que si hace clic en algunos de nuestros enlaces, podemos ganar una comisión. Vea cómo se financia WPBeginner , por qué es importante, y cómo puede apoyarnos. Aquí está nuestro proceso editorial .

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

El último kit de herramientas de WordPress

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

Reader Interactions

17 comentariosDeja una respuesta

  1. Syed Balkhi says

    Hey WPBeginner readers,
    Did you know you can win exciting prizes by commenting on WPBeginner?
    Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
    You can get more details about the contest from here.
    Start sharing your thoughts below to stand a chance to win!

  2. nayan says

    I want to add category Id for the post in the post_meta table. How can be the function function add_custom_field_automatically($post_ID) be twicked to accomodate that?

    Thanks

  3. chris says

    Instead of adding the custom field at the time of creating the post, how do I display a custom field by default on the admin page?

    • Editorial Staff says

      If you notice, the code above doesn’t have anything related to the custom post types. It only adds to Post and Page “content type”. So you would have to specify the hook for your custom post type.

      Administrador

      • puanthanh says

        Thanks for the reply. Can you help me out on this code.
        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);
        }
        }
        When the user meta field is changed, I want to automatically delete the custom field value and update with the new one

  4. brian says

    I’ve been working on adding some hidden custom fields on post publish/update (by preceding the field name with “_”) but for some reason I have to update the post twice before the wp_postmeta entries are written to the database.

    I’ve tried messing with the priority and experimenting with other action hooks (draft_to_publish, edit_post, etc) but it doesn’t seem to make a difference.

    Any ideas?

  5. Piet says

    will this work too for custom post types?
    sth like add_action(‘publish_custom-post-typ-name’, ‘add_custom_field_automatically’);

    • Otto says

      Yes, it will.

      One downside to this technique that people should be aware of is that if somebody edits a published post, this hook WILL get fired again on the edit. Therefore, you need to check for the meta before adding it, or to update it, or to do whatever makes the most sense for your use-case.

      If you only want to get your code fired off on the initial publish only, then you can use the transition_post_status hook. This hook works like this:


      add_action('transition_post_status','example',10,3);
      function example($new, $old, $post) {
      // $new is the new post status ('publish')
      // $old is the old post status ('draft')
      // $post is the complete Post Object (so use $post->ID for the ID, etc)
      }

      Then, in here you can do a check for something like this:

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

      To have your code only used when the post status actually transitions to publish from whatever it was before. This hook is fired at the same time as the {$status}_{$post-type} hooks are, so the operation of them is basically the same.

Deja tu comentario

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