Como adicionar uma classe de corpo a todas as páginas internas, exceto a página inicial

Desejo adicionar uma classe à tag de corpo de todas as páginas EXCETO a página inicial. Agora sim.

<?php body_class("interior"); ?>

Mas adiciona “interior” a TODAS as páginas, incluindo a página inicial.

Qual é a melhor maneira padrão de adicionar uma classe à tag do corpo?

Resposta

Experimente:

<?php $class = ! is_home() ? "interior" : ""; body_class( $class ); ?> 

Ou isto:

<?php body_class( ! is_home() ? "interior" : "" ); ?> 

Comentários

  • Obrigado pela sua resposta! no entanto, ainda adiciona interior à página inicial ' ' também.
  • Estranhamente, trabalhei aqui.
  • Experimente: < body <? php body_class (! is_home () & &! is_front_page ()? " interior ": " "); ? > >
  • Ajustei minhas configurações de leitura para estáticas e não selecionei nenhuma página & funcionou.

Resposta

O filtro body_class pode ser usado para isso.

add_filter( "body_class", "body_class_wpse_85793", 10, 2 ); function body_class_wpse_85793( $classes, $class ) { // This one overrides all original classes if( is_home() ) $classes = array( "interior" ); // This one simply adds a new class //if( is_home() ) // $classes[] = "interior"; return $classes; } 

Comentários

  • muito bom. Mais um motivo para não copiar header.php para o diretório de modelo filho, se eu não ' não precisar fazer modificações adicionais no arquivo.

Resposta

Use o filtro body_class para adicionar qualquer classe à tag body no WordPress.

Adicione o código abaixo ao seu arquivo functions.php.

Adicione a classe à tag do corpo de todas as páginas.

 add_filter("body_class", "wp_body_class"); function wp_body_class($class) { $class[] = "my-custom-class"; // Add your class name here. Multiple class names can be added "classname1 classname2". return $class; } 

Excluir página inicial

if (!is_front_page() ) { // exclude home or any other page. add_filter("body_class", "wp_body_class"); } function wp_body_class($class) { $class[] = "my-custom-class"; // Add your class name here. Multiple class names can be added "classname1 classname2". return $class; } 

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *