Como criar um campo personalizado do WordPress programaticamente

Publicados: 2022-01-20

Deseja criar um campo personalizado do WordPress programaticamente ? Se sim, temos o guia perfeito para você com mais algumas opções adicionais.

Existem muitas razões pelas quais o WordPress é o CMS mais popular em todo o mundo. Mas um dos mais relevantes é ser altamente personalizável. Você pode personalizar muitos elementos de um site WordPress, dos quais os campos personalizados também são um deles. O WordPress tem tantos outros recursos personalizáveis ​​para eles que você pode até adicionar os campos personalizados programaticamente em seu site.

O que são campos personalizados?

Um campo personalizado é anexado a uma postagem ou página e armazena informações adicionais a serem usadas em um site. Também pode estar relacionado a qualquer tipo de postagem. Assim, ele pode coletar informações relacionadas a produtos, comentários ou até tipos de postagem personalizados também.

Eles são armazenados no banco de dados do seu site WordPress na tabela wp_postmeta . Ele contém os parâmetros meta_id, post_id, meta_key e meta_value.

banco de dados wordpress criar campos personalizados programaticamente

Além disso, você também pode armazenar qualquer tipo de dados no campo personalizado. Eles podem até ser usados ​​por usuários frontend e backend, ou por algum outro script PHP também.

Por que criar um campo personalizado no WordPress?

Os campos personalizados podem ser usados ​​para atender a uma ampla gama de requisitos. Sempre que você precisar adicionar alguma informação adicional relacionada a um post, um campo personalizado pode ser muito útil.

No entanto, os campos personalizados são usados ​​principalmente pelos desenvolvedores para adicionar novos recursos aos seus sites. Uma de suas aplicações mais úteis é usá-los no frontend para que os usuários possam preencher um formulário .

Mas aqui estão mais alguns exemplos em que um campo personalizado pode ser usado:

  • Anexe um “humor” às postagens, onde você deseja revelar como estava se sentindo ao escrevê-lo.
  • Informe os usuários se uma postagem for sugerida para alguma faixa etária específica.
  • Armazene o tempo necessário para ler um post.
  • Dê uma pontuação de um produto ou post.
  • Um dado de referência que acionará algum script quando estiver presente.

Além disso, temas e plugins geralmente usam campos personalizados para atribuir recursos especiais a postagens ou páginas específicas. Da mesma forma, também é uma prática comum usar campos personalizados em interfaces de usuário , tanto no front-end quanto no back-end.

Agora que você está familiarizado com a importância dos campos personalizados no WordPress, vamos ver como podemos adicioná-los.

Como adicionar campos personalizados no WordPress?

Por padrão, você pode adicionar um campo personalizado a qualquer postagem enquanto a edita no editor. Tudo o que você precisa fazer é ativá-lo na guia Opções da página e rolar para baixo para encontrar a caixa meta do campo personalizado.

Basta clicar em “Adicionar campo personalizado” e inserir nome e valor para criar um campo personalizado manualmente.

Mas se você está aqui, certamente está procurando uma maneira de criar o campo personalizado do WordPress programaticamente . Então, vamos em frente e mergulhar nele.

Como criar um campo personalizado do WordPress programaticamente?

Você pode criar facilmente um campo personalizado no WordPress programaticamente se tiver conhecimento técnico básico em programação.

Mas antes de começarmos, certifique-se de fazer backup do seu site e criar um tema filho programaticamente ou usar um dos plugins de tema filho. Estaremos modificando os arquivos delicados do seu site e essas alterações também podem ser apagadas quando você atualizar seu tema WordPress. No entanto, se você usar um tema filho, as personalizações desses arquivos não serão afetadas mesmo depois de atualizar seu tema WordPress.

Se você não se sentir à vontade para alterar os arquivos do tema diretamente por conta própria, também poderá usar plugins como Code Snippets. No entanto, usaremos o tema filho neste tutorial porque é mais fácil para nós.

1. Acesse o arquivo de tema functions.php

Depois de criar um tema filho, você pode começar a adicionar trechos de código em seu arquivo de tema function.php para criar os campos personalizados. Basta ir em Aparência > Editor de Temas e abrir o arquivo functions.php no seu painel do WordPress. Em seguida, adicione os trechos de código na parte inferior deste editor e atualize o arquivo .

editor de temas wordpress criar campos personalizados programaticamente

Usamos o tema Divi para este tutorial. Mas o editor de temas pode parecer diferente em seu site, dependendo do tema que você usa.

2. Adicione trechos de código ao editor de temas

A função add_post_meta() é a que usaremos. São necessários três parâmetros: id do post ou página, nome do campo personalizado e seu valor. Um quarto parâmetro opcional pode ser usado para verificar se o campo personalizado já existe.

Portanto, adicionar um campo personalizado é tão simples quanto adicionar a seguinte linha ao arquivo function.php do tema filho.

 add_post_meta(460, "custom_field_name", "valor",true);

Isso adicionará um campo personalizado à postagem com o ID 460.

Nomeamos o campo personalizado simplesmente “custom_field_name” para esta demonstração. Mas você também pode atribuir uma string como o valor (valor) e definir o parâmetro opcional como true para criá-lo apenas se ele ainda não existir.

Claro, este é o estado mais simples de um script para adicionar um campo personalizado a uma postagem específica. Não é nada eficiente porque funcionará em cada carregamento de página simultaneamente, verificando se o campo personalizado existe inutilmente.

Felizmente, podemos melhorá-lo muito mais, para alcançar uma solução aceitável. O publish_post() será muito útil neste caso porque ele é acionado apenas quando um post é publicado .

 add_action('publish_post', 'add_custom_field_automatically');

function add_custom_field_automatically($post_ID) {

if(!wp_is_post_revision($post_ID)) {

add_post_meta($post_ID, 'meta_field', '55',true);
}
}

Como estamos usando a variável global $post_ID , isso se aplicará a todos os posts recém-publicados .

Atualizar um campo personalizado no WordPress

Ao criar um campo personalizado no WordPress programaticamente, você também pode atualizá-lo, se desejar, com um trecho de código semelhante.

Para atualizar um campo personalizado, a função update_post_meta() pode ser usada. Também usaremos o mesmo gancho do script anterior, pois ele também funciona quando você atualiza uma postagem. Basta adicionar o seguinte trecho de código ao arquivo functions.php do seu site.

 add_action('publish_post', 'update_custom_field_automatically');

function update_custom_field_automatically($post_ID) {

if(!wp_is_post_revision($post_ID)) {

update_post_meta($post_ID, 'meta_field', 20);

}

}

Isso alterará o valor do campo personalizado criado anteriormente de 55 para 20.

O update_post_meta() também funciona como a função add_post_meta() . Ele pode criar um novo campo personalizado se ele também não existir.

Remover campos personalizados no WordPress

O uso de trechos de código não se limita apenas a criar e atualizar os campos personalizados no WordPress. Depois de criar um campo personalizado do WordPress programaticamente, pode haver algumas situações em que você também pode querer removê-lo.

A função que nos permitirá remover todos os campos personalizados com um determinado nome (chave) é delete_post_meta_by_key(”meta_field”); Leva apenas o nome do campo personalizado como seu parâmetro exclusivo.

Como já falamos, a maneira correta de fazer isso é usando um gancho. Desta vez, usaremos o gancho init() que é usado principalmente para inicializar plugins e temas. Novamente, adicione os seguintes snippets ao arquivo functions.php.

 add_action('init', 'remove_custom_field_automatically');

function remove_custom_field_automatically() {

delete_post_meta_by_key( 'meta_field' );

}

Para remover campos personalizados em postagens específicas, você pode usar a função delete_post_meta() . Também pode ser usado se um valor específico for atribuído ao campo personalizado.

Este funciona de maneira semelhante em comparação com o trecho anterior. Mas oferece mais flexibilidade para direcionar a remoção de campos personalizados específicos .

 add_action('publish_post', 'delete_custom_field_automatically');

function delete_custom_field_automatically($post_ID) {

if(!wp_is_post_revision($post_ID)) {

delete_post_meta($post_ID, 'meta_field');

}

}

Este script removerá o campo personalizado chamado “custom_field” do post atual, que é fornecido pela variável $post_ID .

Você também pode remover um campo personalizado somente se um valor específico estiver anexado a ele. Basta adicioná-lo como o terceiro parâmetro.

delete_post_meta($post_ID, 'meta_field','20');

É isso! Você pode criar, atualizar ou excluir um campo personalizado no WordPress programaticamente agora. Basta modificar esses snippets de acordo com seu site e você poderá modificá-los ainda mais.

Conclusão

Este é o nosso tutorial para criar um campo personalizado no WordPress programaticamente . Eles podem ser muito úteis se você quiser fornecer aos usuários informações adicionais em seu site.

Para resumir, mostramos os trechos de código para criar campos personalizados no WordPress. Da mesma forma, também fornecemos mais alguns snippets para atualizar e remover os campos personalizados. Eles podem ser úteis em determinadas circunstâncias, dependendo da necessidade do seu site.

Os campos personalizados são um dos melhores recursos do WordPress e também são amplamente utilizados no WooCommerce. Temos até guias para adicionar campos personalizados no checkout do WooCommerce e reordenar os campos de checkout do WooCommerce. Se você quiser saber mais sobre outras personalizações no WordPress e WooCommerce, sinta-se à vontade para ler os seguintes posts:

  • Como criar um tipo de postagem personalizado no WordPress
  • Personalizar a página de login do WordPress
  • Como personalizar produtos relacionados ao WooCommerce

Então você pode criar os campos personalizados no WordPress programaticamente agora? Você já os criou antes? Deixe-nos saber nos comentários.