Precisei fazer algo divertido no trabalho essa semana e queria compartilhar com vocês porque vai que alguém precisa? Esse é um post mais técnico, mais voltado para quem trabalha com WordPress, então talvez tenha alguns termos esquisitos.
O trabalho era fazer uma página com uma lista de livros. Clicando em cada livro, abriria uma nova página, como um catálogo que liga para um hotsite diferente. Nem todos os livros seriam lançados imediatamente, alguns ficariam “inativos” até o lançamento. Também precisava ter uma ordem numérica para os livros.
Eu ia fazer algo estático, mas se fizesse os meninos iam precisar de mim cada vez que “ativassem” um livro. Então achei melhor fazer todo o processo no WordPress mesmo, já que o site já usava essa plataforma.
Pensei em fazer algo com post types. É assim: existem posts. Existem páginas. Eu ia criar um novo tipo de post, chamado Livros. E também uma nova taxonomia (categoria, tags) para colocar cada grupo de livros em sua categoria. Se fosse uma biblioteca, eu criei os livros e as estantes para catalogá-los.
Só que fazer isso não é só criar um tipo comum de post. Precisa de campos especiais: qual a ordem que ele vai aparecer; se o livro está ativo; se sim, qual o link dele. Por isso precisei também de custom fields.
É fácil fazer isso no WordPress? Sim. Eu estava morrendo de preguiça? Também. Então fiz o que qualquer profissional qualificado faria: procurei plugins.
Para gerar o custom type, encontrei o Custom Post Type Generator . O legal dele é que é simples criar tanto a nova taxonomia (não são nem categorias nem tags, mas estantes) quanto criar o tipo de post e quais campos vão aparecer (dos padrões que o WordPress oferece). Ele ainda deixa escolher o ícone e a ordem que vai aparecer na barra lateral.
O mais legal de tudo é que o Custom Post Type Generator permite exportar suas configurações em php e colar no functions.php do tema. Assim você não precisa manter o plugin instalado. Só instala para gerar o post type e depois de copiar no functions.php, apaga. Desse jeito não tem como ficar mexendo nas configurações.
Para os campos personalizados, peguei o Advanced Custom Fields. Ele é super fácil de usar e bem completo. Posso inserir diversos tipos de campos (texto, número, editor de texto, imagem, categorias e por aí vai) e as tags para usar no tema são bem documentadas no site deles. Ele também pode ser exportado para php e inserido no functions.php, mas aí você precisa copiar a pasta do plugin dentro do tema. Eu ainda acho isso melhor do que deixar o plugin solto e editável.
Aí, no tema em si, criei um modelo de página diferente para exibir a lista de livros e brinquei com os custom fields para exibir direitinho o que esperava. Ficou assim:
Ficou bem bacana, fácil de atualizar e de adicionar novas campanhas, como deve ser. A usabilidade ficou bem flúida e não deu trabalho para implementar.
Qualquer dúvida, pode comentar que eu tento te ajudar 🙂