Dans le plugin que je développe, j'utilise le code suivant pour construire mon menu -
add_menu_page('BCRM Plugin Settings', 'BCRM',
'administrator', __FILE__, 'bcrm_settings_page', BOOGIE__PLUGIN_URL .
'_inc/img/icon_settings.png');
add_submenu_page( __FILE__, 'BCRM Customer Settings', 'Customer Settings',
'administrator', 'BCRM', 'bcrm_customer_settings_page');
add_submenu_page( __FILE__, 'BCRM Form Settings', 'Form Settings',
'administrator', 'BCRM', 'bcrm_form_settings_page');
Mes fonctions sont construites comme ceci -
function bcrm_settings_page() {
if ( !current_user_can( 'manage_options' ) ) {
wp_die( __( 'You do not have sufficient permissions to access this page.' ) );
}
require_once( BOOGIE__PLUGIN_DIR . 'views/options.php' );
}
function bcrm_customer_settings_page() {
if ( !current_user_can( 'manage_options' ) ) {
wp_die( __( 'You do not have sufficient permissions to access this page.' ) );
}
require_once( BOOGIE__PLUGIN_DIR . 'views/customer_settings.php' );
}
function bcrm_form_settings_page() {
if ( !current_user_can( 'manage_options' ) ) {
wp_die( __( 'You do not have sufficient permissions to access this page.' ) );
}
require_once( BOOGIE__PLUGIN_DIR . 'views/form_settings.php' );
}
Chaque fois que je consulte le contenu de ces menus, ils semblent charger deux fois mes vues. Donc, si je clique sur Paramètres du client, je reçois le contenu des deux vues comme suit:
Gestion de la relation client Ceci est la page des clients.
Gestion des relations avec la clientèle Ceci est la page des formulaires.
Qu'est-ce que je fais qui provoque le chargement de mes deux vues sur chaque page?
J'utilisais le même nom de page pour les deux.
Vous pouvez voir dans cet extrait que j'ai utilisé "BCRM" et que je ne m'en suis pas rendu compte.
add_submenu_page( __FILE__, 'BCRM Customer Settings', 'Customer Settings',
'administrator', '**BCRM**', 'bcrm_customer_settings_page');
add_submenu_page( __FILE__, 'BCRM Form Settings', 'Form Settings',
'administrator', '**BCRM**', 'bcrm_form_settings_page');
Je les ai changés pour BCRM_customers et BCRM_forms respectivement et il est maintenant fonctionnel à 100%.
Ce fut une erreur stupide qui venait de ne pas lire attentivement. Si vous voyez des doublons, recherchez les noms de pages en double.