J'essaie de développer un plugin qui doit ajouter deux pages au menu latéral du tableau de bord. L'un d'entre eux étant une catégorie principale. Tout va bien, à l'exception du deuxième élément de sous-menu pour la page des paramètres. Après avoir parcouru à peu près le même nombre de codex et effectué des recherches sur le Web à la recherche de problèmes similaires, je n'ai trouvé aucune solution.
Est-ce que je manque quelque chose avec ça? (le premier sous-menu est de créer la page de destination dupliquée, bien sûr)
add_action('admin_menu', 'my_add_submenu');
function my_add_submenu(){
add_menu_page( 'Author Discussion', 'Discussion', 'manage_options', 'author_discuss', 'author_discuss_build_page', plugins_url( 'author-discussion/images/icon.png' ), 999 );
add_submenu_page( 'author_discuss', 'Author Discussion', 'Author Discussion', $menu_capability, 'author_discuss' );
add_submenu_page( 'author_discuss', 'Author Discussion Settings', 'Settings', 'manage_options', 'author_discuss_settings', 'author_discuss_settings_page' );
}
function author_discuss_build_page(){
//do something
}
function author_discuss_settings_page() {
//do something
}
Une chose que je remarque, quand je vais cliquer sur le lien dans la barre latérale, il redirige vers:
J'ai l'impression qu'il me manque quelque chose d'évident.
J'ai suivi le dernier exemple sur le codex WordPress situé ici .
J'ai essayé de changer l'action de admin_menu
à admin_init
pour voir si cela changerait le résultat. L'URL s'imprime comme prévu puis /wp-admin/admin.php? Page = author_discuss_settings , mais génère une erreur "Vous ne disposez pas d'une erreur d'autorisations suffisantes."
Sur la même page du codex, vous avez ceci:
REMARQUE: Si vous rencontrez le message "Vous ne disposez pas des autorisations suffisantes pour accéder à cette page". message dans un écran wp_die (), alors vous vous êtes accroché trop tôt.
Cela répond donc à votre question en partie.
La deuxième partie, le code suivant devrait fonctionner:
add_action('admin_menu', 'my_add_submenu');
function my_add_submenu(){
add_menu_page( 'Parent', 'Parent', 'manage_options', 'author_discuss', 'author_parent' );
add_submenu_page( 'author_discuss', 'Author Discussion', 'Author Discussion', 'manage_options', 'author_discuss' );
add_submenu_page( 'author_discuss', 'Author Discussion Settings', 'Settings', 'manage_options', 'author_discuss_settings', 'author_discuss_settings_page' );
}
function author_parent() {
}
function author_discuss_settings_page() {
//do something
}
Vérifiez vos fonctions et voyez s'il y a une faute de frappe.