Wordpress 按作者或类别查询帖子

Wordpress 按作者或类别查询帖子,wordpress,Wordpress,这将为我提供所有不是当前打开的帖子,它们是由同一作者撰写的,和,并且至少满足列表类别中的一个 <?php $loop = new WP_Query([ 'post__not_in' => [$current_id], 'category__in' => $categories, 'author' => $author_id, 'posts_per_page' => 3 ]); ?> 但是,我怎么能提出一个查询,让我知道所有

这将为我提供所有不是当前打开的帖子,它们是由同一作者撰写的,,并且至少满足列表类别中的一个

<?php $loop = new WP_Query([
    'post__not_in' => [$current_id],
    'category__in' => $categories,
    'author' => $author_id,
    'posts_per_page' => 3
]); ?>

但是,我怎么能提出一个查询,让我知道所有由同一作者撰写的帖子符合当前类别之一


如何使
中的
类别和
作者
不相互排斥?

您可以利用
获取结果
并构建自己的SQL查询

例如:

显然,这只是一个示例查询,但它展示了如何构建查询

注意:我目前无法访问wpdb来测试字段名,所以上面给出的是purelz猜测。因此,您需要定制查询以满足您的实际需要

您可以在中找到更多信息。

您可以使用过滤器并将OR语句(作者或类别)移动到其中

$querystr = "
SELECT $wpdb->posts.* 
FROM $wpdb->posts, $wpdb->postmeta
WHERE $wpdb->posts.ID NOT IN $current_id
AND $wpdb->posts.ID = $wpdb->postmeta.post_id 
AND ($wpdb->postmeta.meta_author = $author_id 
OR $wpdb->postmeta.meta_category_ID IN $categories) 
AND $wpdb->posts.post_status = 'publish' 
AND $wpdb->posts.post_type = 'post'
ORDER BY $wpdb->posts.post_date DESC
LIMIT 3
";

$pageposts = $wpdb->get_results($querystr, OBJECT);