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


12

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

Ответы:


18

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

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

Демо-код:

add_action( 'admin_menu', 'wpse_91693_register' );

function wpse_91693_register()
{
    add_menu_page(
        'Include Text',     // page title
        'Include Text',     // menu title
        'manage_options',   // capability
        'include-text',     // menu slug
        'wpse_91693_render' // callback function
    );
}
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'>Included from <code>$file</code></p>";

    print '</div>';
}

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


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

Я пробовал 'show_in_menu' в настраиваемом типе записи, но тогда есть меню, которое не показывает страницу и не показывает «добавить новое» для настраиваемого типа записи.
user319940

Решено! для всех остальных попробуйте add_submenu_page и просто добавьте дополнительный параметр для родительского слага, как описано здесь: codex.wordpress.org/Function_Reference/add_submenu_page
user319940
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.