WordPress相关文章推荐

编程入门 行业动态 更新时间:2024-10-26 00:18:14

WordPress<a href=https://www.elefans.com/category/jswz/34/1614721.html style=相关文章推荐"/>

WordPress相关文章推荐

首先 WordPress 本身并没有相关文章的推荐功能,网站之所以需要这样的功能出于两个原因,一方面是推荐相关的内容越优质,访客的留存和继续阅读将会增强,同样从优化角度来说会更加有利于搜索引擎抓取时对页面质量的提升,毕竟一个页面的内容,推荐内容越相关,说明这个页面的质量就越高。

<?phpglobal $post;
$pid = $post->ID;//当前文章的 ID
$tags = [];
$limit = 6;//自定义数量
$post_tags = get_the_terms($pid,'post_tag');
if ( !empty($post_tags) && !is_wp_error($post_tags) ) {$tags = wp_list_pluck($post_tags, 'term_id');
}
$related_args = ['ignore_sticky_posts' => 1,'post_type' => 'post','posts_per_page' => $limit,'post_status' => 'publish','post__not_in' => [$pid],'tag__in' => $tags,'cat' => 2, //获取指定分类下的,可以不加或者不加。
];
$relateds = new WP_Query($related_args);
$post_count = $relateds->post_count;
$output = '<ul>';
if($relateds->have_posts()){while($relateds->have_posts()){$relateds->the_post();$output .= '<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>';}if($post_count<$limit){//数量还不够wp_reset_postdata();$limit = $limit - $post_count;//还差几条数据$pids = wp_list_pluck($relateds->posts,'ID');//获取已有文章 ID$pids = array_merge([$pid],$pids);//合并文章 ID$catids = wp_list_pluck(get_the_category($pid),'term_id');//分类 ID$related_args = ['ignore_sticky_posts' => 1,'post_type' => 'post','posts_per_page' => $limit,'post_status' => 'publish','post__not_in' => $pids,'category__in' => $catids,];$relateds = new WP_Query($related_args);$post_count = $relateds->post_count;if($relateds->have_posts()){while($relateds->have_posts()){$relateds->the_post();$output .= '<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>';}}}//数量还不够if($post_count<$limit){//还不够wp_reset_postdata();$limit = $limit - $post_count;//还差数据$pids = array_merge($pids,wp_list_pluck($relateds->posts,'ID'));//合并文章 ID$related_args = ['ignore_sticky_posts' => 1,'post_type' => 'post','posts_per_page' => $limit,'post_status' => 'publish','post__not_in' => $pids,];$relateds = new WP_Query($related_args);if($relateds->have_posts()){while($relateds->have_posts()){$relateds->the_post();$output .= '<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>';}}}//还不够
}
wp_reset_postdata();
$output .= '</ul>';
echo $output;?>

代码看上去很长,但是大家可以简单的看看其实还是很简单的,首先是根据当前文章 ID 获取当前文章设置的标签,根据标签来获取相同标签的文章,并且排除当前文章,如果文章数量不够,就继续或许当前文章分类下面的文章,并且排除当前文章和前面已经获取到的文章,如果还不够我们需要的数量,就整站获取其他文章补够数量。

更多推荐

WordPress相关文章推荐

本文发布于:2023-11-15 17:14:35,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1603308.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:相关文章   WordPress

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!