【发布时间】:2017-10-14 19:58:56
【问题描述】:
我正在尝试使用“pre_get_posts”操作来更改 wordpress 管理员中的帖子查询列表。我想要实现的是当用户具有特定角色时仅显示具有特定类别的帖子。例如,如果用户具有“内部编辑”角色,则应该只允许他编辑具有特定类别的帖子,因此在管理员帖子列表中我只想列出他们可以编辑的帖子。
这是一种工作,但我有 36 个类别为“2”的帖子,只有 1 个类别为“3”的帖子......在管理员中,我只看到列出的 36 个帖子,它们都属于“2”类别" 即使项目总数正确显示 (37)。
这是我的代码
public function filter_post_for_xbox_insider_role($wp_query_obj)
{
global $pagenow;
if( !is_admin() ){
return;
}
if( 'edit.php' != $pagenow )
{
return;
}
if( 'post' != $wp_query_obj->query['post_type'] )
{
return;
}
$user = wp_get_current_user();
if($user->roles[0] != 'insider_editor')
{
return;
}
$wp_query_obj->set('cat', '2,3' );
}
为什么$wp_query_obj->set('cat', '2,3' ); 不能正常工作?
谢谢
【问题讨论】: