ariefbayu
  • 0
Эксперт

Экран конфигурации администратора без меню

  • 0

Я хочу создать подконфигурацию с какой-либо страницы в панели администратора, например:

Я установил меню конфигурации следующим образом:

add_menu_page( 'E+', 'CRE+', 8, 'cr_e_plus_user_config', 'cr_e_plus_user_config');
add_submenu_page( 'cr_e_plus_user_config', 'E+', 'Configurations', 8, 'cr_e_plus_user_config', 'cr_e_plus_user_config');

Со Configurations страницы мне нужно загрузить другую страницу, когда я нажимаю определенную ссылку. Теперь я не хочу, чтобы эта новая страница отображалась в меню, потому что для ее отображения потребуется определенный параметр.

Share
  1. Административные страницы в основном не говорят ничего, кроме привязки к функции, поэтому технически не проблема добавить свои собственные страницы без использования меню.

    Я не знал о функции API, которая позволяет легко регистрировать собственные страницы, но в WordPress есть вспомогательная функция, которую вы можете использовать: get_plugin_page_hookname() (недокументированная функция). Кроме того, хук должен быть зарегистрирован в глобальном реестре всех хуков страниц ( $GLOBALS['_registered_pages'] ), чтобы он считался действительным при запросе страницы.

    Я включил это в пример кода, просто сохраните его в своей /wp-content/mu-plugins папке: admin_page_demo.php (пример плагина WordPress MU)

    Там вы можете найти функцию register_admin_page(), которая может зарегистрировать любой обратный вызов, который вам нужен для admin_menu хука. Это важно, сравните с добавлением меню администрирования (WordPress Codex).

    Функция возвращает URL-адрес новой страницы администратора. Вы написали, что вам может понадобиться добавить дополнительные параметры, поэтому я подумал, что это может быть удобно.

    Для демонстрационной страницы, которую я жестко запрограммировал в этом примере, URL-адрес: /wp-admin/options-general.php?page=adminpagedemo_demo_page .

    Имейте в виду, что вам нужно самостоятельно проверить безопасность этой страницы, потому что WordPress этого не делает. Что-то типа

    current_user_can( ... );
    wp_die( __('You do not have sufficient permissions to access this page.') );
    

    может быть полезной дополнительной подсказкой.

    • 0

Оставить ответ

You must login to add an answer.