web-dev-qa-db-fra.com

Comment ajouter une classe à l'élément <html>?

J'utilise le X-Theme dans Wordpress et j'ai rencontré un problème pour lequel j'avais besoin d'une classe CSS dans la balise <html>, mais uniquement sur une page. Voici le code que j'ai ajouté à mon fichier d'en-tête de thème enfant:

<!-- If page#=103, add this class -->
<?php
    if( is_page( 103 ) ) {
        ?>
        <html class="html-homepage">
        <?php
    }
?>

Le code est entré dans le fichier _header.php et semble fonctionner sans problèmes.

Ma question est de savoir si cette méthode va casser quoi que ce soit ou si c'est une façon super hacky de faire cela? Je suis incapable de trouver une solution différente qui a fonctionné pour moi.

Il semble que puisque Wordpress effectue le traitement, tout devrait bien se passer, mais je voulais m'assurer que cela n'interférerait pas avec les autres fonctionnalités de Wordpress.

Merci!

Edit: Le code que j'ai ajouté se trouve dans les fichiers de thème enfant, pas dans les fichiers de base Wordpress.

1
Matthew Johnston

Voici une façon d'ajouter la classe. Remplacez blog par le slug de la page. Exemple - Cette classe sera ajoutée uniquement sur example.com/blog. Mettez ce code dans votre header.php

<?php if($post->post_name === 'blog'){ ?>
    <html class="html-homepage">
<?php } else { ?>
    <html>
<?php ?>
0
Liam Stewart

Je ne suis pas sûr que ce soit "légal" (ou efficace) d'avoir une classe assignée à la balise html. ajouté Un peu plus de recherches indiquent que la balise HTML peut avoir des attributs comme un style ou une classe, donc cela peut être fait. Vous ne savez pas pourquoi vous ajouteriez des styles à la balise HTML plutôt qu'à la balise BODY.

réponse originale

Je pense que vous avez besoin de quelque chose à ajouter à la classe 'body' pour une page spécifique. Voir la réponse à cette question similaire: https://stackoverflow.com/questions/2466073/add-a-custom-class-name-to-wordpress-body-tag .

Et, il ne faut pas normalement (ou jamais) modifier les fichiers de thème (ou WP code principal). Vous devez utiliser un thème enfant pour ajuster les actions du thème. De cette façon, vous pouvez ajouter un filtre au fichier function.php du thème enfant et toute modification apportée ne sera pas écrasée par un thème ni par la mise à jour WP.

L'utilisation de la solution décrite dans la question ci-dessus suppose que votre thème utilise correctement la fonction body_class. C'est une autre raison pour laquelle un thème enfant est une meilleure solution: vous pouvez vous assurer que le thème utilisera la fonction body_class dans la sortie de la page.

0
Rick Hellewell