Campos Customizados com o plugin Advanced Custom Fields (ACF)

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.

Todos os campos do tipo texto no ACF

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.

Configuração de campo obrigatório do ACF

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:

Condições para exibição do ACF

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:

PHP

Também é possível ter somente o retorno do valor, sem imprimí-lo na tela, quando for preciso trabalhá-lo:

PHP

Fora do loop é preciso indicar de qual post ou página devemos buscar o campo customizado:

PHP

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:

PHP

Continuaremos falando das coisas boas do ACF no próximo post. Até a próxima, se não for antes!