Vous cherchez un moyen d'ajouter une classe de corps personnalisée pour des pages spécifiques ? Bien qu'il existe probablement un plugin pour cela, nous avons créé un extrait de code rapide que vous pouvez utiliser pour ajouter une classe de corps personnalisée pour des pages spécifiques dans WordPress.
Instructions :
Il vous suffit d'ajouter ce code au fichier functions.php de votre thème ou dans un plugin spécifique au 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;
}
Ajoutez cet extrait de code au fichier header.php de votre thème WordPress pour remplacer votre balise de corps HTML par défaut.
<body <?php body_class(); ?>>
Remarque : Si c'est la première fois que vous ajoutez des extraits de code dans WordPress, veuillez consulter notre guide sur la manière d'ajouter correctement des extraits de code dans WordPress, afin de ne pas endommager accidentellement votre site.
Si vous avez aimé cet extrait de code, n'hésitez pas à consulter nos autres articles sur le site tels que : 27 meilleurs thèmes WordPress pour entreprises et 7 meilleurs plugins WordPress GDPR.
Est-ce que quelque chose de similaire est possible mais pour un #id ? Je ne veux pas de classe .id
Vous pouvez toujours utiliser la classe .page-id : https://developer.wordpress.org/reference/functions/body_class/
Cela dit, pour les identifiants réels, vous pourriez ajouter un id au fichier de modèle lui-même et utiliser des conditionnels pour contrôler quand il s'affiche.
super ! ça m'a beaucoup aidé.
où puis-je ajouter une classe une fois les étapes ci-dessus terminées ?
changez la classe dans le code « neat-stuff » à ce que vous voulez. Vous pouvez même ajouter
plusieurs classes si nécessaire.
je veux un id / une classe différent pour chaque page... comment l'assigner à une page spécifique ?
Cet extrait n'est pas ce dont vous avez besoin, il n'ajoutera qu'une seule classe à
“is_page(7) || is_category(5) || is_tag(‘neat’)
Une page avec l'ID 7 ou la catégorie 5 ou une page qui a le tag neat. Je pense que ce qui correspondrait mieux à vos besoins est ce qui suit.
http://wpsnipp.com/index.php/functions-php/add-parent-page-slug-to-body_class/
Cela ajoutera le slug de la page comme classe pour la page avec le préfixe parent-{page_slug}. Outre l'ajout de cet extrait à functions.php, rien d'autre ne doit être fait. Regardez également ce résultat de recherche pour plus d'extraits liés à body_class http://wpsnipp.com/?s=body_class
Je suis sûr que vous en trouverez quelques-uns qui sont utiles.
merci !
Fonctionne parfaitement pour moi, bon travail !
Merci beaucoup pour cela, vraiment apprécié !
Merci pour cela, je voulais un nom de classe de corps plus court pour un modèle de page personnalisé, en utilisant is_page_template (‘template-name.php’) et cela a parfaitement fonctionné.
peut-ce être combiné avec l'autre snippet de classe de corps afin que si les pages ne sont pas spécifiées, elles aient par défaut leur propre page comme classe ?
Devrait être capable de faire simplement
if ( is_page(7) || is_category(5) || is_tag(‘neat’) ){
$classes[] = ‘neat-stuff’; }else{
$classes[] = ‘other-class’;
}
Y a-t-il quelque chose que vous devez faire après avoir ajouté la classe ? Je ne vois aucun moyen d'ajouter une classe personnalisée pour une page...
Salut Trevor,
Oui, vous devrez ajouter la fonction body_class() dans la balise body. J'ai mis à jour l'extrait pour éviter toute confusion.
Très pratique. Quelque chose de similaire peut-il être fait en utilisant le parent de la page ?
Bien sûr, vous pourriez faire quelque chose comme ça, cependant si vos pages n'ont qu'un seul parent, body_class ajoutera déjà la classe "page-parent" au corps. Ce n'est un problème que si vous avez de nombreuses pages enfants, car chaque sous-page peut également être une page parente. Qu'essayez-vous de faire ?
Voilà un snippet très soigné pour les mises en page personnalisées – génial !
Cool, content que ça vous plaise !