¿Estás buscando una forma de agregar la categoría de la publicación a las clases del elemento body para publicaciones individuales? Este pequeño fragmento tomará todas las categorías asignadas a una publicación y agregará cada una de ellas como una clase de body con el patrón sgl-cat-{nombre-de-categoría}.
Instrucciones:
Todo lo que tienes que hacer es agregar este código al archivo functions.php de tu tema o a un plugin específico para el sitio:
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;
}
Nota: Si es la primera vez que agregas fragmentos de código en WordPress, consulta nuestra guía sobre cómo copiar / pegar fragmentos de código correctamente en WordPress, para que no rompas tu sitio accidentalmente.
Si le gustó este fragmento de código, considere consultar nuestros otros artículos en el sitio como: Reseña de CSS Hero: el plugin de personalización de temas de WordPress #1.
Este es mi post más cercano a lo que necesito.
¿Cómo puedo usar este código para mostrar la categoría en un que contenga toda la información sobre el post.
Me gusta hacer esto porque quiero crear un estilo diferente para cada categoría que tengo.
Intenté poner directamente el body_class en el pero no necesito toda esta información (home blog logged-in admin-bar no-customize-support wp-custom-logo .category uncategorized) solo necesito esto (uncategorized) porque es la categoría del post.
Me funciona. ¡Gracias!
Curiosamente, cuando copio el código, la comilla simple se copió como comilla simple china “‘’”, tuve que cambiarla manualmente para que funcionara. No creo que sea tu problema, todavía estoy tratando de averiguar cómo sucedió eso.
Genial, pero necesitas una corrección o el código anterior dará un error fatal. El hook debería tener:
add_filter(‘body_class’,’add_category_to_single’,10,2) ya que pasas 2 parámetros.
Bruce, ¡el mundo es un lugar hermoso gracias a gente como tú! 😀
Gracias por ahorrarme tiempo. 🙂