张文保的博客
张文保 · Paul Zhang

Engineering the Future

WordPress

WordPress通过标签添加相关文章功能

WordPress默认的模板没有相关文章的功能,将下面的代码放在文章页模板文章结束位置即可实现相关文章的功能。原理是获取当前文章的标签,输出该标签下最近的10篇文章,如果该标签下不够10篇文章则补充最新文章凑成10篇。$post_num后面的数值就是要调用的文章数量。

<h3>相关文章</h3>
<ul class="related_posts">
<?php
$post_num = 10;
$exclude_id = $post->ID;
$posttags = get_the_tags(); $i = 0;
if ( $posttags ) {
$tags = ''; foreach ( $posttags as $tag ) $tags .= $tag->term_id . ',';
$args = array(
'post_status' => 'publish',
'tag__in' => explode(',', $tags),
'post__not_in' => explode(',', $exclude_id),
'caller_get_posts' => 1,
'orderby' => 'comment_date',
'posts_per_page' => $post_num,
);
query_posts($args);
while( have_posts() ) { the_post(); ?>
<li><a rel="bookmark" href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" target="_blank"><?php the_title(); ?></a></li>
<?php
$exclude_id .= ',' . $post->ID; $i ++;
} wp_reset_query();
}
if ( $i < $post_num ) {
$cats = ''; foreach ( get_the_category() as $cat ) $cats .= $cat->cat_ID . ',';
$args = array(
'category__in' => explode(',', $cats),
'post__not_in' => explode(',', $exclude_id),
'caller_get_posts' => 1,
'orderby' => 'comment_date',
'posts_per_page' => $post_num - $i
);
query_posts($args);
while( have_posts() ) { the_post(); ?>
<li><a rel="bookmark" href="<?php the_permalink(); ?>"  title="<?php the_title(); ?>" target="_blank"><?php the_title(); ?></a></li>
<?php $i++;
} wp_reset_query();
}
if ( $i  == 0 )  echo '<li>没有相关文章!</li>';
?>
</ul>

 

相关文章
本文标题:《WordPress通过标签添加相关文章功能》
网址:https://zhangwenbao.com/wordpress-adds-related-article.html
作者:张文保
发布时间:2018-06-19
许可协议:CC BY-NC-SA 4.0
仅有 1 条评论
  1. 评论头像

    感谢分享,谢谢站长!!

    绿软吧 2020-05-28 13:11:19 中国福建省厦门市电信 回复
发表新评论
SSL安全认证