私はメニューページと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'サブメニューページは表示しません)。
サブページのスラッグを親ページのスラッグと同じにすることができます。例えば:
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' )
);
}