hook body_class pour les pages d'administration

16

Le hook body_class ne semble fonctionner qu'avec des pages non admin. Quand je fais

add_filter('body_class', 'add_body_classes');
function add_body_classes($classes) {
        $classes[] = 'myclass';
        return $classes;
}

Y a-t-il un autre crochet que je devrais utiliser si je veux ajouter une classe au corps d'une page d'administration?

ltfishie
la source

Réponses:

19

Les pages d'administration n'utilisent pas le body_classfiltre, utilisez admin_body_classplutôt le filtre pour ajouter des classes à la balise de corps d'administration.

Mamaduka
la source
9
Il convient de noter que le paramètre $ classes dans la méthode du filtre admin_body_class est une chaîne et non un tableau developer.wordpress.org/reference/hooks/admin_body_class
Roman Epicnerd Sharf
13

La réponse de Mamaduka m'a pointé dans la bonne direction , voici le code pour ajouter des classes au corps dans le tableau de bord.

La fonction de rappel doit renvoyer une valeur valide pour l'attribut de classe HTML, c'est-à-dire les noms de classe séparés par des espaces, aussi, n'oubliez pas de préfixer (ou d'ajouter) toutes les classes existantes, vous devez comprendre en lisant le code.

add_filter( 'admin_body_class', 'my_admin_body_class' );

/**
 * Adds one or more classes to the body tag in the dashboard.
 *
 * @link /wordpress//a/154951/17187
 * @param  String $classes Current body classes.
 * @return String          Altered body classes.
 */
function my_admin_body_class( $classes ) {
    return "$classes my_class";
    // Or: return "$classes my_class_1 my_class_2 my_class_3";
}
Nabil Kadimi
la source
1
Cela devrait probablement être la réponse choisie. L'implémentation d'origine d'Asker renvoie un tableau, mais le hook accepte une chaîne séparée par des espaces: https://developer.wordpress.org/reference/hooks/admin_body_class/ . La réponse choisie est donc trompeuse, car elle ne répond que partiellement à la question et ne fournit aucune référence.
pwbred
Pour rendre PHP plus facile à implémenter si vous n'êtes pas programmeur, sans utiliser de chaînes à l'intérieur de guillemets doubles, c'est la même chose quereturn $classes.' my-class my-other-class';
Jonas Lundman
J'utilise return sprintf('%s folded', $classes);selon ma convenance.
besrabasant
-1

l'un des crochets que j'utilise pour modifier WP admin / Dashboard admin_head

    function remove_screen_options(){ 

    $hideCSS = '<style>#screen-meta-links { display: none; }</style>';

} 

Mettra le css dans votre partie admin

Et en utilisant la classe .wp-admin, vous pouvez styliser la partie corps d'admin.

Bonne chance

alex
la source