Quiero agregar una clase a la etiqueta de cuerpo de todas las páginas EXCEPTO la página de inicio. Ahora mismo lo tengo.
<?php body_class("interior"); ?>
Pero agrega «interior» a TODAS las páginas, incluida la página de inicio.
¿Cuál es la mejor forma estándar de agregar una clase a la etiqueta del cuerpo?
Respuesta
Pruébelo:
<?php $class = ! is_home() ? "interior" : ""; body_class( $class ); ?>
O esto:
<?php body_class( ! is_home() ? "interior" : "" ); ?>
Comentarios
- ¡Gracias por tu respuesta! sin embargo, también agrega interior a la página ' home '.
- Curiosamente, funcionó aquí.
- Pruébelo: < body <? php body_class (! is_home () & &! is_front_page ()? " interior ": " "); ? > >
- Ajusté mi configuración de lectura a estática y no he seleccionado ninguna página & funcionó.
Respuesta
El filtro body_class
se puede utilizar para esto.
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; }
Comentarios
- muy agradable. Una razón más para no copiar header.php en el directorio de mi plantilla secundaria si no ' no necesito hacer modificaciones adicionales al archivo.
Respuesta
Utilice el filtro body_class
para agregar cualquier clase a la etiqueta del cuerpo en WordPress.
Agrega el siguiente código a tu archivo functions.php.
Agrega la clase a la etiqueta del cuerpo de todas las 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 de inicio
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; }