自定义WordPress管理页面/url“您没有足够的权限访问此页面。”

时间:2012-05-04 作者:Calvin Cheng

以下是我创建的自定义wordpress管理页面:-

// code located in my custom plugin\'s php file

function my_special_function(){

    echo \'<div> Hello World </div>\';

}

function my_menu_page(){

    $page_title = "Hello Page Title";
    $menu_title = "Hello Menu Title";
    $capability = "administrator";
    $menu_slug = "do_something";
    $function = my_special_function;
    add_menu_page($page_title,  $menu_title, $capability, $menu_slug, $function);

}

add_action(\'admin_menu\', \'my_menu_page\');
根据http://codex.wordpress.org/Function_Reference/add_menu_page , 此功能采用“功能”(请参阅角色和功能),用于确定菜单中是否包含页面。连接以处理页面输出的函数必须检查用户是否也具有所需的“能力”。

我当前使用的用户是管理员,但当我尝试访问该页面时

http://localhost:8888/wp-admin/admin.php?page=do_something
我明白了

You do not have sufficient permissions to access this page.
为什么会这样?如何修复此问题?

2 个回复
SO网友:Rutwick Gangurde

这就是您需要的:

function my_special_function(){
    ?>
        <div class=\'wrap\'>
            <h2>Hello World</h2>
            <!-- ALL THE CUSTOM MARK UP SHOULD BE INSIDE WRAP-->
        </div>
    <?php
}

function my_menu_page(){
    add_menu_page(\'Page title\', \'Menu Title\', \'administrator\', \'page_slug\', \'my_special_function\');
}

add_action(\'admin_menu\', \'my_menu_page\');
试试这个!

SO网友:fischi

尝试使用所需的功能,而不是用户角色。请注意,这是两个不同的项目-角色可以具有功能,但管理员角色不一定包括任何功能,因为它们可以自由分配和删除。

manage_options 这对你来说是一个很好的开始。

function my_special_function(){
    ?>
        <div class=\'wrap\'>
            <h2>Hello World</h2>
            <!-- ALL THE CUSTOM MARK UP SHOULD BE INSIDE WRAP-->
        </div>
    <?php
}

function my_menu_page(){
    add_menu_page(\'Page title\', \'Menu Title\', \'manage_options\', \'page_slug\', \'my_special_function\');
}

add_action(\'admin_menu\', \'my_menu_page\');

结束

相关推荐

PHP致命错误:无法为wp-includes/capabilities.php中的非对象调用重载函数

我在apache日志中遇到了太多以下错误。PHP Fatal error: Cannot call overloaded function for non-object in wp-includes/capabilities.php on line 1187这是函数current\\u user\\u can($capability)的内部,第1187行如下所示:$current_user = wp_get_current_user(); 我不知道问题出在哪里?