我的要求是编辑者应该能够看到创建编辑者/用户后添加的帖子。
例如,如果WordPress系统有超过2000个帖子,并且编辑器是在12月13日创建的,一旦编辑者登录WordPress管理员,他应该只能在12月13日之后看到帖子。
我尝试添加过滤器来实现更改,但它不起作用。 有什么建议吗?
function posts_since_editor_created($query)
{
global $pagenow;
if($pagenow != 'edit.php' || $query->is_admin ) //for admin and other places it returns the usual query response.
{
return $query;
}
//check if current user have edit access
if( current_user_can( 'edit_others_posts' ) )
{
global $user_ID;
$udata = get_userdata( $user_ID );
$registered_date = $udata->user_registered;
$query->set( 'date_query',
[
[
'after' => $registered_date, // posts only displayed after user registration date
'before' => '2025-10-10',
'inclusive' => true,
]
]
);
}
return $query;
}
add_filter('pre_get_posts', 'posts_since_editor_created');
使用以下方式设置date_query。
$query->set('date_query', array(
array(
'after' => $registered_date, // posts only displayed after user registration date
'before' => '2025-10-10',
'inclusive' => true
),
)
);
只需将date_query替换为上面的一个即可。