web-dev-qa-db-fra.com

Type de message personnalisé et body_class: Supprimez la classe "blog"

J'utilise body_class(); pour styler différentes sections d'un site wordpress en fonction de leur classe de corps. Les styles de page descendent de .page-template, les styles de blog descendent de .single-post et/ou .blog etc.

J'ai créé un type de message personnalisé "Produits" pour la section produits du site et souhaite styler spécifiquement cette section à l'aide de sa classe body. Malheureusement, body_class(); attribue également à la page unique des types de publications personnalisées la classe .blog, ce qui en fait un grand nombre. Les styles de blog prévalent sur les styles de produits, ce qui est très frustrant.

Existe-t-il un moyen de supprimer la classe "blog" pour mes pages uniques de type publication personnalisée?

Merci!

1
j-man86

Vous pouvez utiliser le filtre body_class pour vérifier si vous êtes sur votre type de publication personnalisé. Si c'est le cas, supprimez simplement la classe blog comme ceci:

 function remove_blog_from_cpt_classes($classes, $class){
    global $post;
    if ($post->post_type != "products"){
        return $classes;
    }else{
        foreach($classes as &$str){
            if(strpos($str, "blog") > -1){
                $str = "";
            }
        }
    }
    return $classes;
}
add_filter("body_class", "remove_blog_from_cpt_classes", 10, 2);

J'espère que cela t'aides

3
Bainternet