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


Not enough permissions when editing posts query for author administration panel plugin

我正在编写一个插件,它应该挂接posts查询并添加一些参数

它应该这样工作:

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

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

现在,对于管理员角色用户,它是有效的,但对于Author角色

它给我回了一个非常有用的信息:

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...,我就不会再遇到权限问题了。

感谢大家。

我找到了这个问题的解决方案
我做错的是在菜单链接上使用动态url,同时使用管理菜单编辑器插件(非常好的插件)。插件确实使用菜单元素的url来识别它。

由于它每次都会随着我必须传递给查询的参数而变化,所以每次都使用默认权限来访问该菜单元素。正如您所猜测的,默认情况下author角色未被授权,因此触发了You don't have enough permissions...警报。

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