编辑帖子查询作者管理面板插件时没有足够的权限

时间:2015-11-08 20:45:21

标签: php wordpress plugins

我正在编写一个插件,该插件应该挂钩帖子查询并添加一些参数。

它应该像这样工作:

注意:我们在作者管理面板中。

  • 作者点击"显示所有帖子"
  • 在链接中有一些参数
  • 插件接收add_filter( 'parse_query', 'sgcp_posts_filter' );
  • 的挂钩
  • 我使用参数编辑查询
  • Wordpress向我展示了我过滤后的帖子列表。

现在,使用管理员角色用户可以使用它,但它不适用于作者角色用户。

它向我发回了非常有用的信息:

You do not have sufficient permissions to access this admin page.

这是我的代码:

add_filter( 'parse_query', 'sgcp_posts_filter' );

function sgcp_posts_filter( $query ){

    global $pagenow;
    $type = 'post';
    if (isset($_GET['post_type'])) {
        $type = $_GET['post_type'];
    }    

    if ( 'nf_sub' == $type && is_admin() && $pagenow=='edit.php' && isset($_GET['study_groups']) && $_GET['study_groups'] != '') {
        $params=$_GET['study_groups'];
        $query->set('meta_query' , array(
            array(
                'key'   =>  '_field_44',
                'value' =>  $params
                )
            ));
    }


}

注意:如果我在if语句中评论$query->set...,我就不会再遇到权限问题了。

感谢大家。

1 个答案:

答案 0 :(得分:0)

我找到了问题的解决方案 我做错了是在菜单链接上使用动态网址,同时使用Admin Menu Editor plugin(非常好的插件)。 该插件确实使用菜单元素的 url 来识别它。

由于每次使用默认权限访问该菜单元素时必须传递给查询的参数都会更改。您可以猜测,默认情况下,author角色未获得授权,因此会触发You don't have enough permissions...警报。

解决方案是移动逻辑以查找菜单元素调用的页面内的参数。