Você está procurando uma maneira de adicionar a categoria do post às classes do elemento body para posts individuais? Este pequeno trecho pegará todas as categorias atribuídas a um post e adicionará cada uma delas como uma classe body com o padrão sgl-cat-{nome-da-categoria}.
Instruções:
Tudo o que você precisa fazer é adicionar este código ao arquivo functions.php do seu tema ou a um plugin específico do site:
add_filter(‘body_class’,’add_category_to_single’,10,2);
function add_category_to_single($classes, $class) {
if (is_single() ) {
global $post;
foreach((get_the_category($post->ID)) as $category) {
$classes[] = 'sgl-cat-'.$category->category_nicename;
}
}
return $classes;
}
Observação: Se esta é a primeira vez que você adiciona trechos de código no WordPress, consulte nosso guia sobre como copiar / colar trechos de código corretamente no WordPress, para não quebrar acidentalmente seu site.
Se você gostou deste trecho de código, considere conferir nossos outros artigos no site como: Revisão do CSS Hero: O Plugin nº 1 para Personalização de Temas WordPress.
Este é o meu post mais próximo do que preciso.
Como posso usar este código para mostrar a categoria em um que contenha todas as informações sobre o post.
Gosto de fazer isso porque quero criar estilos diferentes para cada categoria que tenho.
Eu tentei colocar diretamente o body_class no mas não preciso de todas essas informações (home blog logged-in admin-bar no-customize-support wp-custom-logo .category uncategorized) eu só preciso disso (uncategorized) porque é a categoria do post.
Funciona para mim. Obrigado!
Curiosamente, quando copiei o código, a aspa simples foi copiada como aspa simples chinesa “‘’”, tive que alterá-la manualmente para que funcionasse. Não acredito que seja um problema seu, ainda estou tentando descobrir como isso aconteceu.
Ótimo, mas você precisa de uma correção ou o código acima dará um erro fatal. O hook deveria ter:
add_filter(‘body_class’,’add_category_to_single’,10,2) já que você passa 2 parâmetros.
Bruce, O mundo é um lugar lindo por causa de pessoas como você! 😀
Obrigado por me poupar algum tempo. 🙂