Intereting Posts
Файл Js не добавляется с помощью этого кода в functions.php Фильтр и порядок по нескольким пользовательским метазнакам WP_query и разбиение на страницы? Пользовательский отзывчивый размер «показанного изображения» Не выполнять. Если пользователь зарегистрирован как администратор или какая-либо конкретная роль Импорт изображений приводит к неправильной структуре папок Какой файл является стандартной главной страницей, в которой перечислены все сообщения? Остановить strip_shortcodes () удаление содержимого внутри коротких кодов Изменение изображения заголовка страницы Как передать аргументы add_action () или получить возвращаемое значение вызываемой функции? Остановить wordpress из атрибутов ширины и высоты hardgoding img Шаблон страницы по темам Меню Nav из плагина в тему Отображение сообщений по категории Разрешить нефильтрованный HTML для не зарегистрированных пользователей при сохранении сообщения

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

Я использую 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' );