私が開発しているプラグインで、私は私のメニューを構築するために次のコードを使用しています -
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');
私の機能はこのように構築されています -
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' );
}
私がこれらのメニューの内容を見るときはいつでも、それらは私の見解を二度ロードしているように見えます。それで私が顧客設定をクリックするならば、私はこのようにロードしている両方の意見の内容を得ます -
カスタマーリレーションシップマネジメントこれはカスタマーページです。
カスタマーリレーションシップマネジメントこれはフォームページです。
私がしていることは、私の2つのビューがすべてのページにロードされることを引き起こしていますか?
両方に同じページ名を使用していました。
このスニペットには、私が "BCRM"を使用したことがわかりますが、わかりませんでした。
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');
私はそれらをそれぞれBCRM_customersとBCRM_formsに変更しました、そしてそれは今100%機能的です。
これは慎重に読んでいないことから来た愚かな間違いでした。重複している場合は、ページ名が重複していないか確認してください。