Добавление пользовательской страницы в админке

21 мар. 2013 г., 01:55:10
Просмотры: 46.4K
Голосов: 20

Я хочу добавить страницу с контентом (файл readme) в админ-панель WordPress, но не могу найти информацию об этом в кодексе - может кто-нибудь подсказать, как это сделать? По сути, это будет простая страница с несколькими абзацами текста.

0
Все ответы на вопрос 1
3
29

Вам нужно всего два шага:

  1. Подключиться к хуку admin_menu, зарегистрировать страницу с callback-функцией для вывода контента.
  2. В callback-функции загрузить файл из plugin_dir_path( __FILE__ ) . "included.html".

Демонстрационный код:

add_action( 'admin_menu', 'wpse_91693_register' );

function wpse_91693_register()
{
    add_menu_page(
        'Включить текст',     // заголовок страницы
        'Включить текст',     // заголовок меню
        'manage_options',      // права доступа
        'include-text',        // ярлык меню
        'wpse_91693_render'   // callback-функция
    );
}
function wpse_91693_render()
{
    global $title;

    print '<div class="wrap">';
    print "<h1>$title</h1>";

    $file = plugin_dir_path( __FILE__ ) . "included.html";

    if ( file_exists( $file ) )
        require $file;

    print "<p class='description'>Подключено из <code>$file</code></p>";

    print '</div>';
}

Я добавил пример в свой демонстрационный плагин T5 Admin Menu Demo, чтобы показать, как это сделать в подменю и в ООП стиле.

21 мар. 2013 г. 02:16:55
Комментарии

Только что попробовал это, выглядит отлично, но есть ли способ добавить это в подменю моего пользовательского типа записи? Вместо того, чтобы создавать отдельное меню.

user319940 user319940
21 мар. 2013 г. 15:07:46

Пробовал использовать 'show_in_menu' в пользовательском типе записи, но тогда появляется меню, которое не отображает страницу и не показывает "Добавить новую" для пользовательского типа записи.

user319940 user319940
21 мар. 2013 г. 15:20:11

Решено! Для тех, кто столкнулся с такой же проблемой: попробуйте использовать add_submenu_page и просто добавьте дополнительный параметр для родительского slug, как описано здесь: http://codex.wordpress.org/Function_Reference/add_submenu_page

user319940 user319940
21 мар. 2013 г. 15:27:16