J'utilise add_menu_page (...) à partir d'un thème personnalisé et je souhaite ajouter des sous-pages à ce menu avec add_submenu_page (...) . Si j'essaie de le faire à partir du thème, cela fonctionne comme prévu, mais lorsque j'essaie la même chose à partir d'un plugin, cela ne fait rien.
Je pensais qu'il était possible que le plugin essaye d'ajouter la page de sous-menu avant même que le menu n'existe, alors j'ai intégré le code dans une fonction et utilisé add_action (...) depuis le plugin en utilisant un hook d’action personnalisé créé à l’endroit où je voulais que le code s’exécute (dans la ligne exacte dans laquelle le thème a fonctionné) avec do_action (...) .
L'exemple de code serait le suivant:
(thème)
function wvdh_add_admin_page(){
// The next 2 lines work fine
add_menu_page( 'WVDH - Settings','WVDH', 'manage_options', 'wdvh-startpoint', 'render_page', 'dashicons-admin-network', '109');
add_submenu_page( 'wdvh-startpoint', 'page-title', 'menu-title', 'manage_options', 'menu-slug', 'render_page' );
// The next line does nothing
do_action('wvdh-menu');
}
add_action('admin_menu', 'wvdh_add_admin_page');
function render_page(){
echo '<h1>Test</h1>';
}
(brancher)
add_action('admin_menu', 'wvdh_create_menu');
function wvdh_create_menu() {
add_action('wvdh-menu', 'new_subpage');
}
function new_subpage(){
add_submenu_page( 'wvdh-startpoint', 'page-from-plugin', 'menu-from-plugin', 'manage_options', 'plugin-slug', 'wvdh_settings_page' );
}
function wvdh_settings_page() {
echo '<h1>Test from-plugin</h1>';
}
C'est juste une faute de frappe
Faux
//wvdh-startpoint
add_submenu_page( 'wvdh-startpoint', 'page-from-plugin', 'menu-from-plugin', 'manage_options', 'plugin-slug', 'wvdh_settings_page' );
Correct
//wdvh-startpoint
add_submenu_page( 'wdvh-startpoint', 'page-from-plugin', 'menu-from-plugin', 'manage_options', 'plugin-slug', 'wvdh_settings_page' );