Intereting Posts
Обновить заголовок сообщения из внешнего файла? Пользовательский плагин, один перевод переопределяет другие языки Запретить WordPress размещать <p> вокруг определенного элемента Как получить имя автора сообщения по его идентификатору внутри функции? Использование WordPress за заказным распределением CloudFront Создание подпапки внутри корневой установки? Добавить код AdSense в index.php Как создать и заполнить несколькими ссылками меню в дочерней теме functions.php? Проверьте дочерние / родительские категории, если существует Перенаправить все поддомены в корневой домен Как загрузить мультимедийный ресурс для мультимедиа в wordpress Предупреждение: Недопустимое смещение строки на странице параметров темы query_posts -> get page_id из настраиваемого поля Multisite для Multisite? Пользовательский SQL-запрос для получения списка сообщений с отображаемым URL-адресом изображения

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

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