Você está procurando uma maneira de adicionar uma classe de corpo personalizada para páginas específicas? Embora provavelmente exista um plugin para isso, criamos um trecho de código rápido que você pode usar para adicionar uma classe de corpo personalizada para páginas específicas no WordPress.
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', 'my_neat_body_class');
function my_neat_body_class( $classes ) {
if ( is_page(7) || is_category(5) || is_tag('neat') )
$classes[] = 'neat-stuff';
return $classes;
}
Adicione este trecho de código ao arquivo header.php do seu tema WordPress para substituir sua tag HTML de corpo padrão.
<body <?php body_class(); ?>>
Observação: Se esta é a sua primeira vez adicionando snippets de código no WordPress, consulte nosso guia sobre como adicionar snippets 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: 27 melhores temas de negócios WordPress e 7 melhores plugins GDPR para WordPress.
Algo semelhante é possível, mas para um #id? Eu não quero a classe .id
Você ainda pode usar a classe .page-id: https://developer.wordpress.org/reference/functions/body_class/
Dito isso, para IDs reais, você poderia adicionar um ID ao próprio arquivo de template e usar condicionais para controlar quando ele é exibido.
ótimo! me ajudou muito.
onde posso adicionar a classe depois que os passos acima forem concluídos?
mude a classe no código ‘neat-stuff’ para o que você quiser. Você pode até adicionar
múltiplas classes, se necessário.
eu quero um id / classe diferente para cada página… como eu o atribuo a uma página específica?
Este snippet não é o que você precisa, ele só adicionará uma única classe a
“is_page(7) || is_category(5) || is_tag(‘neat’)”
Uma página com o ID 7 ou a categoria 5 ou uma página que tenha a tag neat. Acho que o que melhor atenderia às suas necessidades é o seguinte.
http://wpsnipp.com/index.php/functions-php/add-parent-page-slug-to-body_class/
Isso adicionará o slug da página como classe para a página com o prefixo parent-{page_slug}. Além de adicionar este trecho ao functions.php, nada mais precisa ser feito. Dê uma olhada também neste resultado de pesquisa para mais trechos relacionados a body_class http://wpsnipp.com/?s=body_class
Tenho certeza que você encontrará alguns úteis.
obrigado!
Funciona perfeitamente para mim, bom trabalho!
Muito obrigado por isso, realmente apreciado!
Obrigado por isso, eu queria um nome de classe de corpo mais curto para um template de página personalizado, usando is_page_template (‘template-name.php’) e isso funcionou perfeitamente.
você isso pode ser combinado com o outro trecho de classe de corpo para que, se as páginas não forem especificadas, elas tenham como padrão ter sua própria página como classe?
Deveria ser capaz de fazer apenas
if ( is_page(7) || is_category(5) || is_tag(‘neat’) ){
$classes[] = ‘neat-stuff’; }else{
$classes[] = ‘other-class’;
}
Há algo que você precise fazer depois de adicionar a classe? Não estou vendo nenhuma maneira de adicionar uma classe personalizada para uma página...
Oi Trevor,
Sim, você precisará adicionar a função body_class(); dentro da tag body. Eu atualizei o snippet para evitar confusão.
Muito útil. Algo semelhante pode ser feito usando o pai da página?
Claro, você poderia fazer algo assim, no entanto, se suas páginas tiverem apenas um pai, o body_class já adicionará a classe “page-parent” ao corpo. Isso é um problema apenas se você tiver muitas páginas filhas, pois cada subpágina pode também ser uma página pai. O que você está tentando fazer?
Agora isso é um trecho muito legal para layouts de página personalizados – incrível!
Legal, fico feliz que você goste!