WordPress, a melhor plataforma para blogs em PHP, apesar de prover diversas facilidades de uso e desenvolvimento, não é uma ferramenta-mágica-que-faz-seu-trabalho-por-você e, assim como acontece quando se lida com qualquer outra plataforma de terceiros, para se conseguir os melhores resultados é preciso estudo e conhecimento de seu funcionamento interno e saber o que é disponibilizado para a criação/edição.

Uma dúvida corriqueira que aparece na comunidade WordPress é sobre como ter classes personalizadas em links de categorias de um post, não raramente necessárias para o desenvolvimento e/ou personalização de temas. Geralmente, usa-se a função the_category() para uma “listagem crua”, mas, com algumas linhas extra de código, é possível chegar à consecução do objetivo de atribuir classes à lista de categorias de um post no WordPress.

A função get_the_category()

Com um mínimo de estudo do WordPress, logo se descobre que muitas funções possuem uma “contraparte” que, ao invés de exibir dados em tela, diretamente, retornam-os para que estes sejam tratados como se queira/precise. Por exemplo: the_permalink()/get_permalink(), the_excerpt()/get_the_excerpt(), the_date()/get_the_date(), e assim por diante.

O mesmo acontece com the_category(), que tem como “contraparte” a função get_the_category() que, como você já deve ter adivinhado, ao invés de já exibir em tela os links das categorias de um post no WP, retorna um array de objetos, sendo um objeto para cada categoria a que o post pertence – e, em cada um destes objetos, muitas informações sobre cada categoria, como ID, nome, slug, taxonomia a que pertence e outras mais.

Mais informações

Segundo é possível encontrar na própria documentação WordPress sobre a função get_the_category(), a assinatura da função é:

Sendo que $id é opcional – caso não seja especificado, será levado em conta o ID do post atual (dentro do Loop).

Cada objeto do array retornado através de get_the_category() retorna uma série de informações potencialmente valiosas para que a criação/customização de um tema possa acontecer; consulte a página oficial para ver todos os valores retornados.

Aplicação simples de get_the_category()

Então, sabendo dessas informações, já se torna possível algo como:

Então, ao invés de exibir a lista de links de categorias de um post com the_category(), é possível se valer de get_the_category() para atingir o objetivo pretendido. Algo como o mostrado na própria página da função:

Ali, mesmo, já seria possível atribuir uma lista de classes personalizadas, se fosse o caso, o que daria fim ao objetivo de conseguir trabalhar com classes personalizadas em links de categorias no WordPress.

Aplicação profissional de get_the_category(): DRY

Um dos grandes objetivos de qualquer programador é (ou, pelo menos, deveria ser) evitar a repetição de seus códigos; o já manjado acrônimo DRY sintetiza esta metodologia/intenção.

Então, aqui vai uma sugestão para uma função com o objetivo de exibir a lista de links de categorias de um post com classes personalizadas, que deve ser colocada no functions.php do tema (ou em algum arquivo de um plugin, se for o caso):

Quer dizer, no primeiro parâmetro são passadas as classes, propriamente ditas (múltiplas classes em CSS são separadas por espaço e, caso se queira passar somente uma, tudo bem) e, opcionalmente no segundo parâmetro, o ID do post que se quer – caso nenhum seja passado, será usado o post atual (do Loop).

Dessa forma, a função fica disponível no desenvolvimento de temas WP, devendo ser usada da seguinte maneira (obviamente, os nomes das classes são exemplos):

Como dito, é somente uma sugestão; adapte e incremente como achar mais conveniente/necessário. Também, algumas das partes da função foram postas mais diretamente para fins didáticos, devendo você adaptar a função conforme seu sistema – por exemplo, seria mais interessante em sistemas “do mundo real” criar uma função para remover “x caracteres” do final de strings ao invés de fazer isso diretamente no retorno desta.

Conclusão

Como visto, quando se conhece mais do funcionamento interno e funções/recursos disponíveis do WordPress, fica bem mais fácil e eficiente promover o desenvolvimento/atualização de temas conforme quaisquer especificações de projetos que possam surgir.

Inserir classes personalizadas em links de categorias de um post é somente uma das possibilidades, que usa somente poucas das funções que o WordPress oferece para funcionar. Até o presente momento, não se tem conhecimento de caso de alguém que tenha morrido de estudar; então, aproveite a ampla documentação do WordPress Codex para ser um melhor profissional e conseguir desenvolver projetos WordPress com muito mais qualidade!

Lembrando que, com um pouquinho de adaptação, usando este mesmo princípio também é possível fazer listagens de tags com classes personalizadas. Dê uma olhada na função do WordPress get_the_tags().