WordPress无插件实现相关文章列表

之前想做过相关文章列表,用函数做的,但是总是遇到一个问题,就是wordpress相关文章代码加上去之后,回复评论的时候,总是回复到相关文章列表中最后一篇文章上去,现在这个问题总算是解决了,具体方法如下:

首先进入WordPress后台,在左侧菜单中找到“外观”选项,然后点击“编辑”,此时页面最右侧会把该模板下面所有的页面都列出来,我们只要点击“文章页面 (single.php)”,然后在希望加入相关文章代码的地方,加入如下代码即可:

<strong>相关文章:</strong>
<ul id="tags_related">
 <?php
 $post_tags = wp_get_post_tags($post->ID);
 if ($post_tags) {
     $tag_list = ”;
     foreach ($post_tags as $tag)
     {
         // 获取标签列表
         $tag_list .= $tag->term_id.’,';
     }
     $tag_list = substr($tag_list, 0, strlen($tag_list)-1);
     $related_posts = $wpdb->get_results("
         SELECT post_title, ID
         FROM {$wpdb->prefix}posts, {$wpdb->prefix}term_relationships, {$wpdb->prefix}term_taxonomy
         WHERE {$wpdb->prefix}term_taxonomy.term_taxonomy_id = {$wpdb->prefix}term_relationships.term_taxonomy_id
         AND ID = object_id
         AND taxonomy = ‘post_tag’
         AND post_status = ‘publish’
         AND post_type = ‘post’
         AND term_id IN (" . $tag_list . ")
         AND ID != ‘" . $post->ID . "’
         ORDER BY RAND()
         LIMIT 8");
         // 以上代码中的 8 为限制只获取8篇相关文章
         // 通过修改数字 8,可修改你想要的文章数量
 
    if ( $related_posts ) {
         foreach ($related_posts as $related_post) {
 ?>
     <li><a href="<?php echo get_permalink($related_post->ID); ?>" rel="bookmark" title="<?php echo $related_post->post_title; ?>"><?php echo $related_post->post_title; ?></a></li>
 <?php  } } else { ?>
     <li>暂无相关文章</li>
 <?php } } ?>
 </ul>
展开评论