在wordpress中列出与当前帖子具有相同标签的帖子

pieyvz9o  于 2021-06-24  发布在  Mysql
关注(0)|答案(1)|浏览(352)

我有一个有50万个帖子的网站,速度很慢。
在wordpress站点上的每个帖子的底部,我只想显示3个随机帖子,它们与当前帖子具有相同的标签。
请注意,每个帖子总是只有一个标签(不多也不少)。
我使用以下代码,但是 SELECT 收到成千上万的帖子,速度非常慢。
使用 posts_per_page=3 它通过查询得到数千篇文章(标签相同),之后只显示了3篇文章,但是mysql的负载非常高。相反,逻辑应该是“只找到3个帖子,然后停止”。

$posttags = get_the_tags();
foreach($posttags as $tag) {
$duot=$tag->slug; 
$duot2=$tag->name; 
}

$the_query = new WP_Query( 'tag='.$duot.'&posts_per_page=3' );
if ( $the_query->have_posts() ) {
echo '<h3>Other post with tag '.$duot2.'</h3><ul>';
while ( $the_query->have_posts() ) {
$the_query->the_post();
echo '<li >'.the_title().'</li>';
}
echo '</ul>';
} 

wp_reset_postdata();

如何更改上述代码以减少mysql查询的加载时间?

wrrgggsh

wrrgggsh1#

如果 $id 要匹配的标记id:
$args = array('numberposts' => 3, 'orderby' => 'rand', 'tag_id' => $id); $query = new WP_Query($args); 查询用所选标记随机选择3篇文章。
这样更好吗?

相关问题