Wordpress: Добавить страницу подменю плагина в меню настроек из темы - PullRequest
0 голосов
/ 10 января 2020

У меня есть собственная тема 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 ). Когда я нажимаю на них обоих, я получаю сообщение об ошибке «Нет разрешения на просмотр страницы».

Понятия не имею, что я делаю неправильно, есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...