我有一个自定义帖子类型,它有自己的自定义模板,我想显示与自定义帖子类型标题相关的博客帖子。但是,我想先显示引用的帖子,然后搜索任何带有标记的帖子,最后查找相关帖子。这些操作中的任何一个都可能导致没有结果或结果很多。我想显示的帖子总数为6。
'
$searchtag = strtolower(get_the_title());
$arg1 = array(
'post_type' => 'post',
'p' => $post_id,
);
$arg2 = array(
'post_type' => 'post',
'tag' => $searchtag,
'post_status' => 'publish',
'orderby' => 'post_date',
'order' => 'desc',
'posts_per_page' => 6,
);
$arg3 = array(
'post_type' => 'post',
's' => $searchtag,
'post_status' => 'publish',
'orderby' => 'relevance',
'posts_per_page' => 6,
);
// Get the posts
$query1 = new wp_query( $arg1 );
$query2 = new wp_query( $arg2 );
$query3 = new wp_query( $arg3 );
$related_query = new wp_query();
// Merge the unique posts
$related_query->posts = array_merge($query1->posts, $query2->posts, $query3->posts);
$related_query->post_count = $query1->post_count + $query2->post_count + $query3->post_count;
if($related_query->have_posts):
'
我读过一篇文章,指出使用post__not_in会给数据库带来负担,我不应该合并它。
1.如果查询-〉post_count = 0,我需要添加逻辑吗?
1.如何维护订单,同时确保不显示重复项?
我在这些结果中得到重复的当前。我想消除他们,同时保持顺序的职位query 1,然后query 2,然后query 3...显示前6个职位。
1条答案
按热度按时间pcww981p1#
更好的方法是使用参数进行3次查询:
在那里:
合并时获取数据:
当提出请求时