Arquivos meta fields - WP & etc
Tag: meta fields
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:
<dl> <dt>Atores:</dt> <dd><?php the_field( 'atores' ); ?></dd> </dl>
Também é possível ter somente o retorno do valor, sem imprimí-lo na tela, quando for preciso trabalhá-lo:
<dl> <dt>Sinopse:</dt> <dd><?php echo nl2br( get_field( 'sinopse' ) ); ?></dd> </dl>
Fora do loop é preciso indicar de qual post ou página devemos buscar o campo customizado:
<dl> <dt>Atores:</dt> <dd><?php the_field( 'atores', 7 ); ?></dd> <dt>Sinopse:</dt> <dd><?php echo nl2br( get_field( 'sinopse', 7 ) ); ?></dd> </dl>
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:
<dl> <dt>Atores:</dt> <dd><?php echo get_post_meta( 7, 'atores' ); ?></dd> <dt>Sinopse:</dt> <dd><?php echo nl2br( get_post_meta( 7, 'sinopse' ) ); ?></dd> </dl>