wordpress通过标签来判断相关文章的2种方法

之前我们通过代码实现wordpress相关文章调用《wordpress通过分类来判断相关文章的2种方法》的方法,下面我们介绍另外几种方法,用标签来调用相关文章,调用代码如下:

1.通过标签判断相关文章,下面是实现的代码:

  1. <?php   
  2. $post_tags = wp_get_post_tags($post->ID);   
  3. if ($post_tags) {   
  4.     $tag_list = ;   
  5.     foreach ($post_tags as $tag)   
  6.     {   
  7.         // 获取标签列表   
  8.         $tag_list .= $tag->term_id.’,’;   
  9.     }   
  10.     $tag_list = substr($tag_list, 0, strlen($tag_list)-1);   
  11.   
  12.     $related_posts = $wpdb->get_results(
  13.         SELECT post_title, ID  
  14.         FROM {$wpdb->prefix}posts, {$wpdb->prefix}term_relationships, {$wpdb->prefix}term_taxonomy  
  15.         WHERE {$wpdb->prefix}term_taxonomy.term_taxonomy_id = {$wpdb->prefix}term_relationships.term_taxonomy_id  
  16.         AND ID = object_id  
  17.         AND taxonomy = ‘post_tag’  
  18.         AND post_status = ‘publish’  
  19.         AND post_type = ‘post’  
  20.         AND term_id IN (“ . $tag_list . “)  
  21.         AND ID != ‘” . $post->ID . “‘  
  22.         ORDER BY RAND()  
  23.         LIMIT 6″);   
  24.         // 以上代码中的 6 为限制只获取6篇相关文章   
  25.         // 通过修改数字 6,可修改你想要的文章数量   
  26.   
  27.     if ( $related_posts ) {   
  28.         foreach ($related_posts as $related_post) {   
  29. ?>   
  30.     <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>   
  31. <?php  } } else { ?>   
  32.     <li>暂无相关文章</li>   
  33. <?php } } ?>  

2.通过标签判断相关文章,以SQL语句来直接读取数据库

  1. <?php   
  2. $post_tags = wp_get_post_tags($post->ID);   
  3. if ($post_tags) {   
  4. foreach ($post_tags as $tag)   
  5. {   
  6.     // 获取标签列表   
  7.     $tag_list[] .= $tag->term_id;   
  8. }   
  9. // 随机获取标签列表中的一个标签   
  10. $post_tag = $tag_list[ mt_rand(0, count($tag_list) – 1) ];   
  11. $related = $wpdb->get_results(
  12. SELECT {$wpdb->prefix}posts.post_title, {$wpdb->prefix}posts.guid  
  13. FROM {$wpdb->prefix}posts, {$wpdb->prefix}term_relationships, {$wpdb->prefix}term_taxonomy  
  14. WHERE {$wpdb->prefix}posts.ID = {$wpdb->prefix}term_relationships.object_id  
  15. AND {$wpdb->prefix}term_taxonomy.taxonomy = ‘post_tag’  
  16. AND {$wpdb->prefix}term_taxonomy.term_taxonomy_id = {$wpdb->prefix}  
  17. term_relationships.term_taxonomy_id  
  18. AND {$wpdb->prefix}posts.post_status = ‘publish’  
  19. AND {$wpdb->prefix}posts.post_type = ‘post’  
  20. AND {$wpdb->prefix}term_taxonomy.term_id = ‘” . $post_tag . “‘  
  21. AND {$wpdb->prefix}posts.ID != ‘” . $post->ID . “‘  
  22. ORDER BY RAND( )  
  23. LIMIT 6″);   
  24. // 以上代码中的 6 为限制只获取6篇相关文章   
  25. // 通过修改数字 6,可修改你想要的文章数量   
  26. if ( $related ) {   
  27.     foreach ($related as $related_post) {   
  28. ?>   
  29.     <li>* <a href=“<?php echo $related_post->guid; ?>” rel=“bookmark”    
  30. title=“<?php echo $related_post->post_title; ?>”><?php echo $related_post->post_title; ?></a></li>   
  31. <?php  } } else { ?>   
  32.     <li>* 暂无相关文章</li>   
  33. <?php } }?>   

发表评论

电子邮件地址不会被公开。 必填项已用*标注