首页 > 解决方案 > Wordpress 和作者__in

问题描述

我使用 pre_get_posts 操作查询

但我想显示多个作者的帖子。

这些我使用“author__in”。

$query->set('author__in', [53, 285]);

但我的查询仍然使用 2 个 post_author 参数运行。如何排除第二个?

SELECT SQL_CALC_FOUND_ROWS wp_posts.ID
FROM wp_posts 
WHERE 1=1
AND wp_posts.ID IN (349956,327745,177707)
AND wp_posts.post_author IN (53,285)
AND (wp_posts.post_author = 53)
AND wp_posts.post_type = 'post'
ORDER BY wp_posts.post_date DESC
LIMIT 0, 10

标签: wordpress

解决方案


有多种作者过滤器可用:https ://codex.wordpress.org/Class_Reference/WP_Query#Author_Parameters

添加新的不会删除其他人 - 因此您需要删除原始作者过滤器。您可以使用以下代码执行此操作:

unset( $query->query_vars['author'] ); 

推荐阅读