Intereting Posts
Субдомены на страницы отображение доступных размеров при наведении, на странице магазина woocommerce Как сделать предыдущие версии доступными для пользователей? Как изменить ярлыки в форме регистрации WordPress по умолчанию? Поиск: отображение всех найденных совпадений внутри сообщения Добавить поле ко всем пользовательским типам сообщений Избавление от неиспользуемых директив css Сообщения о недостающем тексте и стиле плагинов yoast странны из-за нового PHP-кода Пользовательские типы сообщений странная проблема с разбивкой по страницам Создание пакетов сайтов WordPress MultiSite Показывать пользователей списка на основе двух настраиваемых значений полей Как удалить столбец со страницы «Сообщения» Локально изменить семейство шрифтов Как получить архив пользовательского типа сообщений, который вызывается при использовании настраиваемого поля для сортировки сообщений? Тема GPL 2 с использованием рамки для коммерческой темы?

Как добавить подстраницу настроек из плагина на страницу настроек, созданную в теме?

Я использую add_menu_page (…) из настраиваемой темы, и я хочу добавить подстраницы в это меню с помощью add_submenu_page (…) . Если я попытаюсь сделать это из темы, он работает так, как ожидалось, но когда я пытаюсь сделать то же самое из плагина, он просто ничего не делает.

Я думал, что возможно, что плагин будет пытаться добавить страницу подменю до того, как меню даже существовало, поэтому я завернул код внутри функции и использовал add_action (…) из плагина, используя созданный пользовательский крюк действий в том месте, где я хотел, чтобы код исполнялся (в точной строке он работал в теме) с do_action (…) .

Пример кода:

(Тема)

function wvdh_add_admin_page(){ // The next 2 lines work fine add_menu_page( 'WVDH - Settings','WVDH', 'manage_options', 'wdvh-startpoint', 'render_page', 'dashicons-admin-network', '109'); add_submenu_page( 'wdvh-startpoint', 'page-title', 'menu-title', 'manage_options', 'menu-slug', 'render_page' ); // The next line does nothing do_action('wvdh-menu'); } add_action('admin_menu', 'wvdh_add_admin_page'); function render_page(){ echo '<h1>Test</h1>'; } 

(Плагин)

 add_action('admin_menu', 'wvdh_create_menu'); function wvdh_create_menu() { add_action('wvdh-menu', 'new_subpage'); } function new_subpage(){ add_submenu_page( 'wvdh-startpoint', 'page-from-plugin', 'menu-from-plugin', 'manage_options', 'plugin-slug', 'wvdh_settings_page' ); } function wvdh_settings_page() { echo '<h1>Test from-plugin</h1>'; } 

Solutions Collecting From Web of "Как добавить подстраницу настроек из плагина на страницу настроек, созданную в теме?"

Это просто опечатка

Неправильно

 //wvdh-startpoint add_submenu_page( 'wvdh-startpoint', 'page-from-plugin', 'menu-from-plugin', 'manage_options', 'plugin-slug', 'wvdh_settings_page' ); кадров //wvdh-startpoint add_submenu_page( 'wvdh-startpoint', 'page-from-plugin', 'menu-from-plugin', 'manage_options', 'plugin-slug', 'wvdh_settings_page' ); 

Верный

 //wdvh-startpoint add_submenu_page( 'wdvh-startpoint', 'page-from-plugin', 'menu-from-plugin', 'manage_options', 'plugin-slug', 'wvdh_settings_page' ); кадров //wdvh-startpoint add_submenu_page( 'wdvh-startpoint', 'page-from-plugin', 'menu-from-plugin', 'manage_options', 'plugin-slug', 'wvdh_settings_page' );