У меня есть собственная тема Wordpress и несколько плагинов. Тема имеет свою собственную страницу настроек, которая работает хорошо:
Тема
<?php
function xx_theme_admin_menu() {
add_menu_page(
'Theme Settings',
'Theme Settings',
'manage_options',
'xx-settings',
'xx_theme_admin_page' ,
'/wp-content/themes/xx/assets/img/logo-Grayscale-30x25.png'
);
}
add_action( 'admin_menu', 'xx_theme_admin_menu' );
function xx_theme_register_settings() {
register_setting( 'theme_options', 'theme_options', 'xx_theme_sanitize' );
}
add_action( 'admin_init', 'xx_theme_register_settings' );
function xx_theme_sanitize( $options ) {
...
}
function xx_theme_admin_page() {
...
}
Теперь я хочу, чтобы у нового плагина была своя собственная страница настроек, которая должна быть подстраница страницы параметров темы:
плагин
<?php
function xx_cookie_banner_admin_menu() {
add_submenu_page(
'xx-settings',
'Cookie Banner',
'Cookie Banner',
'manage_options',
'xx-cookie-banner',
'xx_cookie_banner_admin_page'
);
}
add_action( 'admin_menu', 'xx_cookie_banner_admin_menu' );
function xx_cookie_banner_register_settings() {
register_setting( 'cookie_banner_options', 'cookie_banner_options', 'xx_cookie_banner_sanitize' );
}
add_action( 'admin_init', 'xx_cookie_banner_register_settings' );
function xx_cookie_banner_sanitize( $options ) {
...
}
function xx_cookie_banner_admin_page() {
...
<?php }
Эта страница теперь корректно отображается как подстраница страницы параметров темы. Но: и страница параметров темы, и страница параметров плагина теперь связаны со страницей параметров плагина (см .: Скриншот WP Menu ). Когда я нажимаю на них обоих, я получаю сообщение об ошибке «Нет разрешения на просмотр страницы».
Понятия не имею, что я делаю неправильно, есть идеи?