WordPress и вызов функции undefined add_menu_page()

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

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

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

PHP Fatal error:  Call to undefined function add_menu_page()

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

Ответы

Ответ 1

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

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

Ответ 2

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

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

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