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:

  1.  

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.

Sem estresse!

Precisa de ajuda com seu WordPress?

Entre em contato

2 comentários sobre "Áreas de widgets para cada categoria"

  1. iran
    Como faz para listar uma única categoria em um Widget?
  2. Cláudio Souza

    Aproveitei ao máximo essa dica. Obrigado!

Comments are closed.