WordPress错误:抱歉,您不能访问此页面

时间:2018-08-14 11:59:03

标签: php wordpress

我有一个可在管理控制台上创建菜单页面的插件:

function dp_manage_admin_menu() {
    add_menu_page('Manage Data', 'Manage Data', 'manage_options', 'manage-data', 'dp_manage_data_page', '');

    add_submenu_page('manage-data', 'Add New', 'Add New', 'manage_options', __FILE__ . '/add-new', 'tm_add_new_page');
}

// Actions
add_action('admin_menu', 'dp_manage_admin_menu');

在该页面manage-data中,有一个按钮用于从数据库中删除数据:

<a href="<?php echo admin_url() ?>admin.php?page=manage-data/manage-data.php?id=<?php echo (isset($result->id)) ? $result->id : ""; ?>" class="btn btn-danger btn-sm">
    <i class="fa fa-trash-o"></i> Delete
</a>

因此,如果我单击第一个按钮,它将转到“ http://example.com/wp-admin/admin.php?page=manage-data?id=1

然后我检查是否发送了id,然后删除该结果:

if( isset($_GET['id']) ){
    //Do something.
}

但是我收到错误消息,当我单击删除按钮时:

Sorry, you are not allowed to access this page.

我可以访问“ http://example.com/wp-admin/admin.php?page=manage-data”,但是如果发送了任何参数,我将无法再访问它。

3 个答案:

答案 0 :(得分:0)

我发现了问题,那就是URL看起来像“ http://example.com/wp-admin/admin.php?page=manage-data?qid=6”。

?page=manage-data那里还有另一个参数。

所以我应该使用&来添加另一个参数。

URL应为“ http://example.com/wp-admin/admin.php?page=manage-data&qid=6

答案 1 :(得分:0)

还在wp-setting.php文件中搜索“ define('DISALLOW_FILE_MODS',true);”并删除它。除此解决方案外,以上解决方案均不适用于我!

答案 2 :(得分:0)

负载均衡器接收HTTPS流量,然后将其作为HTTP在端口80上转发到wordpress服务器。

安装wordpress后,我遇到了重定向循环问题。解决方案是将以下代码添加到wp-config.php:

确保所有行必须在页面顶部。我发现了这个问题。可能会有所帮助。

define('FORCE_SSL_ADMIN', true);
if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
 $_SERVER['HTTPS']='on';