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
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();
}