web-dev-qa-db-ja.com

サブメニューの内容が複製されています

私が開発しているプラ​​グインで、私は私のメニューを構築するために次のコードを使用しています -

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つのビューがすべてのページにロードされることを引き起こしていますか?

1
ILikeTurtles

両方に同じページ名を使用していました。

このスニペットには、私が "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%機能的です。

これは慎重に読んでいないことから来た愚かな間違いでした。重複している場合は、ページ名が重複していないか確認してください。

1
ILikeTurtles