我正在编写一个插件,它应该挂接posts查询并添加一些参数
它应该这样工作:
注意:我们在作者管理面板中
- 作者点击"显示所有帖子"
- 链接中有一些参数
- 插件接收带有
add_filter( 'parse_query', 'sgcp_posts_filter' );
的钩子 - 我使用参数编辑查询
- Wordpress向我显示了一个经过筛选的帖子列表
现在,对于管理员角色用户,它是有效的,但对于Author角色 它给我回了一个非常有用的信息: 这是我的代码: 注意:如果我在If语句中注释 感谢大家。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
)
));
}
}
$query->set...
,我就不会再遇到权限问题了。
我找到了这个问题的解决方案
我做错的是在菜单链接上使用动态url,同时使用管理菜单编辑器插件(非常好的插件)。插件确实使用菜单元素的url来识别它。
由于它每次都会随着我必须传递给查询的参数而变化,所以每次都使用默认权限来访问该菜单元素。正如您所猜测的,默认情况下author
角色未被授权,因此触发了You don't have enough permissions...
警报。
解决方案是移动逻辑以查找菜单元素调用的页面内的参数。