WordPress и вызов неопределенной функции add_menu_page () - PullRequest
18 голосов
/ 08 апреля 2011

Я недавно приступил к разработке плагина WordPress и хотел бы добавить страницу меню (ссылки в левом меню). Предыдущие вопросы SO и кодекс WordPress говорят, что это так же просто, как звонить:

add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position );

Однако, когда я пытаюсь это сделать в моем файле установки плагина, он говорит мне, что функция не определена:

PHP Fatal error:  Call to undefined function add_menu_page()

В соответствии с документацией это кажется очень простым делом, но я совершенно сбит с толку. Любая помощь будет принята с благодарностью:)

Ответы [ 2 ]

40 голосов
/ 09 апреля 2011

Я не знаю, как выглядит ваш код, но вот как я только что проверил, и это сработало:

add_action('admin_menu', 'my_menu');

function my_menu() {
    add_menu_page('My Page Title', 'My Menu Title', 'manage_options', 'my-page-slug', 'my_function');
}

function my_function() {
    echo 'Hello world!';
}

Взгляните сюда http://codex.wordpress.org/Administration_Menus

6 голосов
/ 10 июля 2014

Вы получаете это сообщение об ошибке, потому что либо вы использовали функцию add_menu_page вне какого-либо хука, либо подключили его слишком рано.

Функция add_menu_page получает возможность в качестве третьего аргумента определить, имеет ли пользователь требуемую возможность доступа к меню, поэтому функция доступна только при заполнении пользовательской возможности, поэтому вы должны использовать функцию в хуке admin_menu как следующее.

add_action( 'admin_menu', 'register_my_custom_menu_page' );

function register_my_custom_menu_page(){
    add_menu_page(  __( 'Custom Menu Title' ), 'custom menu', 'manage_options', 'custom-page-slug', 'my_custom_menu_page' );
}

function my_custom_menu_page() {
    echo __( 'This is custom menu page.' );
}

Информацию об этом см. На следующей странице кодекса WordPress.

http://codex.wordpress.org/Function_Reference/add_menu_page

...