如何在中隐藏ID数组中的帖子usermeta
对于中的当前用户main query
.
我可以使用post__not_in
在里面meta_query
但我不知道只针对特定用户使用哪个选项。
我想应该用posts_where
?
如何在中隐藏ID数组中的帖子usermeta
对于中的当前用户main query
.
我可以使用post__not_in
在里面meta_query
但我不知道只针对特定用户使用哪个选项。
我想应该用posts_where
?
我不完全确定问题是什么,因为您已经提到了解决问题所需的所有工具。。。
仅使用pre_get_posts
过滤,检查用户是否登录,获取他不应该看到的帖子的ID,并在查询中排除这些帖子:
function remove_some_posts_for_user( $query ) {
if ( ! is_admin() && is_user_logged_in() && $query->is_main_query() ) {
$posts_to_remove_for_current_user = get_user_meta( get_current_user_id(), \'posts_to_remove\', true );
if ( ! empty($posts_to_remove_for_current_user) is_array($posts_to_remove_for_current_user) ) {
$query->set( \'post__not_in\', $posts_to_remove_for_current_user );
}
}
}
add_action( \'pre_get_posts\', \'remove_some_posts_for_user\' );
我想展示A、B、C、D类的帖子。。。和Y,除了X,除非X中的帖子也在Y中,然后将它们与其余的一起显示。我可以很简单地隐藏类别X:$args = array( \'post_type\' => \'post\', \'posts_per_page\' => 15, \'paged\' => $paged, \'cat\' => \'-X\', ); 我试过了combine two loops, 一个获取