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

Como adicionar campos personalizados automaticamente na publicação de posts no WordPress

Nota editorial: Ganhamos uma comissão de links de parceiros no WPBeginner. As comissões não afetam as opiniões ou avaliações de nossos editores. Saiba mais sobre Processo editorial.

Você precisa criar automaticamente campos personalizados ao publicar suas postagens no WordPress?

Esse é um truque simples que os desenvolvedores podem usar ao adicionar novos recursos ao site do WordPress.

Neste artigo, mostraremos como adicionar campos personalizados automaticamente na publicação de posts no WordPress.

How to Add Custom Fields Automatically on Post Publish in WordPress

Por que adicionar campos personalizados automaticamente?

Os campos personalizados permitem que você adicione informações adicionais às suas postagens. Essas informações podem ser exibidas em seu site, mantidas em sigilo ou usadas por temas e plug-ins para ampliar a funcionalidade do seu site WordPress.

Há muitas maneiras de usar os campos personalizados. Você encontrará uma lista de ideias úteis em nosso guia de dicas, truques e hacks de campos personalizados.

Às vezes, você desejará que um campo personalizado seja criado automaticamente sempre que publicar um post. Isso é especialmente verdadeiro quando você está adicionando funcionalidade ao WordPress para que possa usá-lo como algo mais do que um simples blog.

Usamos esse método ao criar um site de galeria. Queríamos armazenar URLs curtos para cada item enviado à galeria. Assim, criamos automaticamente um campo personalizado para armazenar o URL curto quando cada post era publicado.

Esse truque pode ser muito útil para os desenvolvedores que desejam levar o WordPress para o próximo nível.

Adição automática de campos personalizados na publicação do post

Esse método envolve a adição de um trecho de código personalizado ao arquivo functions.php do seu tema. Não recomendamos a edição dos arquivos do tema para usuários inexperientes, pois até mesmo um pequeno erro pode danificar o site.

Em vez disso, mostraremos a você como usar o plug-in WPCode neste tutorial.

WPCode

O WPCode facilita a adição de trechos de código no WordPress sem a necessidade de editar o arquivo functions.php do seu tema. Você também pode gerenciar todos os seus trechos de código em uma tela central.

Se esta é a primeira vez que você adiciona código ao WordPress, consulte nosso guia sobre como copiar e colar trechos de código no WordPress para obter mais detalhes.

Para começar, você precisa instalar e ativar o plug-in gratuito WPCode. Se precisar de ajuda, consulte nosso tutorial sobre como instalar um plug-in do WordPress.

Observação: a versão gratuita do WPCode tem tudo o que você precisa para adicionar código personalizado no WordPress. Para obter recursos mais avançados, como snippets programados, pixels de conversão e muito mais, você pode fazer upgrade para o WPCode Pro.

Depois que o plug-in for ativado, um novo item de menu chamado “Code Snippets” será adicionado à sua barra de administração do WordPress. Clique nele e pressione o botão “Add New” (Adicionar novo) na próxima tela.

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

A partir daí, navegue até a opção “Add Your Custom Code (New Snippet)” (Adicionar seu código personalizado (novo snippet)) e clique no botão “Use snippet” (Usar snippet) abaixo dela.

Add your new custom code snippet in WPCode

Depois disso, você precisa dar um título ao snippet e, em seguida, copiar o código a seguir e colá-lo na caixa “Code Preview” (Visualização de 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);
    }
}

Você terá que substituir “field-name” e “custom value” pelo nome e valor reais que deseja usar para o campo personalizado.

Não se esqueça de escolher “PHP Snippet” como o tipo de código no menu suspenso à direita.

Paste code snippet in WPCode code box

Em seguida, role para baixo até a seção “Inserção”. Aqui, você precisará deixar o método “Auto Insert” (Inserção automática) selecionado.

Pick the insertion method for your custom code snippet

Com o método Auto Insert, o snippet será automaticamente inserido e executado no local adequado.

Quando terminar, você precisará alternar a chave de “Inativo” para “Ativo” e, em seguida, clicar no botão “Salvar snippet”.

Save and activate your custom code snippet

Depois que o snippet for ativado, o campo personalizado será criado sempre que você publicar um post.

Esperamos que este tutorial tenha ajudado você a aprender como adicionar campos personalizados automaticamente na publicação de posts no WordPress. Talvez você também queira saber como escolher a melhor hospedagem do WordPress ou conferir nossa lista de plug-ins obrigatórios do WordPress para expandir seu site.

Se você gostou deste artigo, inscreva-se em nosso canal do YouTube para receber tutoriais em vídeo sobre o WordPress. Você também pode nos encontrar no Twitter e no Facebook.

Divulgação: Nosso conteúdo é apoiado pelo leitor. Isso significa que, se você clicar em alguns de nossos links, poderemos receber uma comissão. Veja como o WPBeginner é financiado, por que isso é importante e como você pode nos apoiar. Aqui está nosso processo 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.

O kit de ferramentas definitivo WordPress

Obtenha acesso GRATUITO ao nosso kit de ferramentas - uma coleção de produtos e recursos relacionados ao WordPress que todo profissional deve ter!

Reader Interactions

17 ComentáriosDeixe uma resposta

  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.

Deixe uma resposta

Obrigado por deixar um comentário. Lembre-se de que todos os comentários são moderados de acordo com nossos política de comentários, e seu endereço de e-mail NÃO será publicado. NÃO use palavras-chave no campo do nome. Vamos ter uma conversa pessoal e significativa.