我的要求是编辑应该能够看到创建编辑器/用户后添加的帖子。
例如,如果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');
答案 0 :(得分:0)
使用以下方式设置 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替换为上面的那个就可以了。