web-dev-qa-db-fra.com

Ajouter un cours personnalisé aux menus d'administration

Je cherche un moyen d’ajouter des classes personnalisées aux menus d’administrateur en utilisant PHP.

Par exemple, voici la balise li pour Posts et Pages:

<li id="menu-posts" class="wp-has-submenu wp-has-current-submenu wp-menu-open open-if-no-js menu-top menu-icon-post menu-top-first">
<li id="menu-pages" class="wp-has-submenu wp-not-current-submenu menu-top menu-icon-page">

Dans la balise posts li, j'aimerais ajouter une classe personnalisée (par exemple, custom_one) afin qu'elle ressemble à ceci:

<li id="menu-posts" class="custom_one wp-has-submenu wp-has-current-submenu wp-menu-open open-if-no-js menu-top menu-icon-post menu-top-first">

Mais pour la balise Pages li, j'aimerais ajouter une classe personnalisée différente (par exemple, custom_two), de sorte qu'elle ressemble à ceci:

<li id="menu-pages" class="custom_two wp-has-submenu wp-not-current-submenu menu-top menu-icon-page">

Une idée de comment faire cela vis-à-vis du fichier functions.php?

Merci,

Moshe

2
user15927

Ce qui suit fait le travail:

add_action( 'admin_init','wpse_60168_custom_menu_class' );

function wpse_60168_custom_menu_class() 
{
    global $menu;

    foreach( $menu as $key => $value )
    {
        if( 'Posts' == $value[0] )
            $menu[$key][4] .= " custom-class-1";

        if( 'Pages' == $value[0] )
            $menu[$key][4] .= " custom-class-2";
    }
}

Et si vous voulez vérifier ce que contient le $menu, utilisez ceci:

add_action( 'admin_init','wpse_60168_var_dump_and_die' );

function wpse_60168_var_dump_and_die() 
{
    global $menu;   
    echo '<pre>' . print_r( $menu, true ) . '</pre>';
    wp_die();
}
3
brasofilo