Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php WordPress并调用未定义的函数add_menu_page()_Php_Wordpress - Fatal编程技术网

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

Php WordPress并调用未定义的函数add_menu_page(),php,wordpress,Php,Wordpress,我最近进入WordPress插件开发,我想添加一个菜单页面(左侧菜单中的链接)。前面的问题和WordPress抄本都说,这就像打电话一样简单: add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position ); 但是,当我在插件设置文件中尝试此操作时,它告诉我该函数未定义: PHP Fatal error: Call to undefined function

我最近进入WordPress插件开发,我想添加一个菜单页面(左侧菜单中的链接)。前面的问题和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()

根据文档,这似乎是一件非常简单的事情,但我完全感到困惑。任何帮助都将不胜感激:)

我不知道您的代码看起来如何,但这就是我刚才测试和工作的方式:

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!';
}

查看此处

您收到此错误消息是因为您在任何挂钩外使用了功能“添加菜单”页面,或者过早地将其挂钩

函数add_menu_页面获取capability作为第三个参数,以确定用户是否具有访问菜单所需的功能,因此该函数仅在填充用户功能时可用。因此,您应按以下方式使用admin_菜单挂钩中的函数

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页面


谢谢,我的问题是我没有将调用放入函数中。我必须使用其他人的代码,它在生产服务器上工作,而不是在我的开发服务器上。我改变了
add_动作('init','my_菜单')
添加操作(“管理菜单”、“我的菜单”)而且它在两台服务器上都能工作,谢谢:)@GabLeRoux为什么?这里也一样,谢谢你救我