web-dev-qa-db-ja.com

メニューページと同じ最初のサブメニューページを作らないようにするには?

私はメニューページと4つのサブメニューページを作りました。

public function onixion_admin_menu_option() {
    add_menu_page('onixion','Onixion','manage_options','onixion-admin- 
    menu',array(&$this, 'onixion_main_page' ),'dashicons-chart- 
    area','200');
    add_submenu_page(
        'onixion-admin-menu', 
        'scripts',
        'Scripts', 
        'manage_options',
        'scripts',
        array(&$this, 'onixion_scripts_page' ) 
    );
    add_submenu_page(
        'onixion-admin-menu', 
        'custom_footer',
        'Custom Footer', 
        'manage_options',
        'custom_footer',
        array(&$this, 'onixion_custom_footer_page' ) 
    );
    add_submenu_page(
        'onixion-admin-menu', 
        'file_upload',
        'File Upload', 
        'manage_options',
        'file_upload',
        array(&$this, 'onixion_file_upload_page' ) 
    );
    add_submenu_page(
        'onixion-admin-menu', 
        'payments',
        'Payments', 
        'manage_options',
        'payments',
        array(&$this, 'onixion_payments_page' ) 
    );
}   

すべてうまくいく、私がそれらを個別にテストするために私が印刷したテキストのそれらのサブメニューページがある。

Onixion

問題は、最初のサブメニューページがメニューページのコピーであるということです。メインメニューの 'Onixion'をクリックしたときに別のページを表示し、追加したサブメニューページだけを表示するようにします( 'Onixion'サブメニューページは表示しません)。

サブページのスラッグを親ページのスラッグと同じにすることができます。例えば:

public function onixion_admin_menu_option() {
    add_menu_page('onixion',
        'Onixion',
        'manage_options',
        'onixion-admin-menu',
        array(&$this, 'onixion_main_page' ),
        'dashicons-chart-area',
        '200'
    );
    add_submenu_page(
        'onixion-admin-menu', 
        'scripts',
        'Scripts', 
        'manage_options',
        'onixion-admin-menu',  // <-- here we set the same slug as for parent page
        array(&$this, 'onixion_scripts_page' ) 
    );
    add_submenu_page(
        'onixion-admin-menu', 
        'custom_footer',
        'Custom Footer', 
        'manage_options',
        'custom_footer',
        array(&$this, 'onixion_custom_footer_page' ) 
    );
    add_submenu_page(
        'onixion-admin-menu', 
        'file_upload',
        'File Upload', 
        'manage_options',
        'file_upload',
        array(&$this, 'onixion_file_upload_page' ) 
    );
    add_submenu_page(
        'onixion-admin-menu', 
        'payments',
        'Payments', 
        'manage_options',
        'payments',
        array(&$this, 'onixion_payments_page' ) 
    );
}   
0