WordPress和调用未定义的函数add_menu_page()

时间:2011-04-08 17:59:24

标签: php wordpress-plugin wordpress

我最近进入了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 个答案:

答案 0 :(得分:40)

我不知道你的代码看起来如何,但这就是我刚刚测试过它的方式:

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

答案 1 :(得分:6)

您收到此错误消息是因为您在任何挂钩外使用了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 codex页面以获取相关信息。

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