Como prometido na postagem anterior, veja como mostrar áreas de widgets para cada categoria ou condicionalmente.
Você viu como adicionar mais áreas de widgets a um tema, se a ideia é ter uma área de widget para cada categoria por exemplo, é óbvio que terá que criar uma área para cada uma, como fiz neste site. Isso pode ser útil se bem pensando, ou um saco e perda de tempo/performance se mal aplicado, tudo depende de como seu site é mantido, quantas categorias tem etc, então, dedique um pouco de tempo no seguinte (se o seu site tem mais de 20 categorias, senão, pode pular para a seção seguinte ;)):
- Quantas categorias terão widgets exclusivos?
- Quantas das categorias com widgets exclusivos precisam de gerenciamento periódico (mudar/editar conteúdo de widgets etc)?
- Preciso de uma área de widget para cada categoria, exclusivamento?
- Duas categorias podem mostrar a mesma área de widget?
Depois deste estudo, enumere quantas áreas de widgets precisará e já crie os nomes para cada área. Faça o possível para que categorias compartilhem a mesma área e assim economize tempo e código.
Os Condicionais
Usando este site como exemplo, tenho uma barra lateral com widgets exclusivos para cada categoria no arquivo sidebar.php, ou seja, use o arquivo de contexto do tema, consulte a documentação Hierarquia de Modelos para saber o que usar com o quê.
Uma vez que todas as áreas estão devidamente registradas, como explicado na postagem anterior, resta apenas criar uma cadeia de condicionais verificando qual a categoria da postagem com in_category. Se também quer usar a área na lista de postagens na categoria, use também is_category, como na linha 10:
Há uma modo mais compacto de se escrever isso, mas deste modo fica mais fácil de adicionar outras funções/tags html dentro da verificação, por exemplo, mostrar um link, imagem etc. O modo mais compacto precisará que “ecoe” elementos adicionais.
Outras dicas
Considerando alguém com um site gigantesco, que mesmo após reduzir ao máximo as áreas de widgets a serem criadas, ficou com muitas categorias (e suas áreas de widgets), talvez seja melhor criar um arquivo com o grande condicional e chamá-lo na área desejada (sidebar.php etc) com get_template_part, assim seu arquivo de tema não fica muito cheio.
A postagem sobre chamar/incluir arquivos no WordPress explica como fazer isso.
2 comentários sobre "Áreas de widgets para cada categoria"
5.03.2014
Cláudio Souza
16.10.2011