wordpress - 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
解决方案
有多种作者过滤器可用:https ://codex.wordpress.org/Class_Reference/WP_Query#Author_Parameters
添加新的不会删除其他人 - 因此您需要删除原始作者过滤器。您可以使用以下代码执行此操作:
unset( $query->query_vars['author'] );
推荐阅读
- css - 为什么我的位置:绝对 div 在 Edge 中的位置不同?
- javascript - 无法将数据从 Java Socket 服务器发送到 NodeJS 客户端
- node.js - 如何将 JWT 从客户端传递到我的 API 以进行正确身份验证?
- mysql - 将大数据存储到 MySQL 数据库的最佳实践是什么?
- visual-studio-2015 - Visual Studio 2019 找不到绑定信息,但 VS 2015 很好
- java - 为什么接口有字段并且它们是公开的?
- office-js - Office.context.ui.displayDialogAsync 本地开发
- javascript - 使用 localStorage 隐藏我的工具提示,但在我的脚本中
- android - 内核 (Android) 到用户空间消息多播错误:netlink_broadcast_filtered+0x24/0x3d4
- azure-logic-apps - 如何在 Azure 逻辑应用中使用 Azure Database for PostgreSQL?