J'ai supprimé le menu "Apparence" de la barre latérale d'administration:
function clean_menu() {
remove_menu_page( 'themes.php' );
}
add_action('admin_menu','clean_menu');
Ensuite, j'ai ajouté le nav-menu.php
manuellement en tant que parent dans la barre latérale:
function menu_reorder($menu_ord) {
if (!$menu_ord) return true;
return array(
...,
'nav-menus.php',
...
);
}
add_filter('custom_menu_order', 'menu_reorder');
add_filter('menu_order', 'menu_reorder');
Cela fonctionne très bien en tant qu'administrateur, mais lorsque je me connecte en tant qu'éditeur, je ne suis pas autorisé à accéder à nav-menu.php
, même si j'ai activé les fonctionnalités requises:
function manage_users() {
if ( get_option( 'add_cap_editor_once' ) != 'done' ) {
$edit_editor = get_role('editor');
$edit_editor->add_cap('edit_themes');
$edit_editor->add_cap('edit_theme_options');
update_option( 'add_cap_editor_once', 'done' );
}
}
add_action( 'init', 'manage_users' );
Des idées pourquoi ceci ne fonctionne pas??
D'accord maintenant je comprend :
Il y avait quelque chose qui n'allait pas à cause des manipulations précédentes.
add_cap
signifie modifier la base de données , si bien que j'avais écrit sur d'autres fonctionnalités. et il a cassé le résultat recherché.
J'ai donc nettoyé le rôle en utilisant quelques-uns remove_cap
, remettez mes fonctions en place et le tour est joué!