Já vimos como o que são campos de metadados para o WordPress é fácil criar um plugin para mostrar uma meta box na página de edição de posts. Veremos agora como usar o plugin Advanced Custom Fields, ou ACF, para criar campos mais avançados e flexíveis.
O plugin ACF possui duas versões: uma é gratuita, disponível no diretório de plugins do WordPress. A outra versão, chamada Pro, é paga e pode ser adquirida e baixada do site do plugin. É o modelo freemium, quando uma versão grátis tem a funcionalidade básica e a versão paga tem funcionalidade avançada.
A versão gratuita do ACF, porém, não é tão básica assim. Ela permite criar diversos tipos de campo, com diversas configurações e validação da entrada do usuário.
A principal vantagem do ACF, pra mim, não é só a criação de meta boxes. A facilidade de criação de interfaces para cada tipo de dados, com validação, permite uma melhor experiência ao usuário.
O primeiro grupo de campos é do tipo texto. É assim que os campos aparecem na edição de posts.

Para adicionar os campos é preciso criar um Grupo de Campos Personalizados. Dentro do grupo pode-se acrescentar vários campos, cada um com pelo menos um rótulo e um nome. O rótulo é o que vai aparecer para o usuário, enquanto que o nome é a chave do campo customizado, como explicado anteriormente.
Os campos de texto sempre retornam um valor de texto (string), mesmo quando são um número. O tipo do campo define como ele aparecerá para o usuário, como vemos na imagem acima.

Existem algumas configurações gerais e outras específicas para cada tipo de campo. Marcar o campo Obrigatório, por exemplo, impede que o post seja publicado sem o preenchimento desse campo.
É possível esconder ou mostrar campos de acordo o preenchimento de outros, com as condições para exibição:

Campos como Números e Faixa possuem valores mínimo e máximo, Texto possui máximo de caracteres. É possível definir se o retonro do campo de Área de Texto terá as novas linhas transformadas na tag br
(nl2br
).
O ACF possui métodos próprios para retornar os valores dos campos customizados em temas ou plugins. Dentro de um loop, pode-se usar a função the_field
para imprimir um valor:
Também é possível ter somente o retorno do valor, sem imprimí-lo na tela, quando for preciso trabalhá-lo:
Fora do loop é preciso indicar de qual post ou página devemos buscar o campo customizado:
As funções the_field
e get_field
só funcionam com o plugin instalado, pois são do ACF e não do WP. Mas, se por acaso seu site tiver posts criados com o ACF, mas não tiver mais o plugin, ainda é possível usar a função get_post_meta
do WordPress:
Continuaremos falando das coisas boas do ACF no próximo post. Até a próxima, se não for antes!