本站相关文章代码分享
本代码的特点是(以相关文章设置10个为准):
1.如果有tag标签的文章,按照tag显示相关
2.如果tag相关文章不足10个,则用本文章的分类文章来补充。直到满10个为止
3.如果分类文章还不满10。则用随机文章来补充,直到满10个为止
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | <?php $post_tags=wp_get_post_tags($post->ID); //如果存在tag标签,列出tag相关文章 $pos=1; if($post_tags) { foreach($post_tags as $tag) $tag_list[] .= $tag->term_id; $args = array( 'tag__in' => $tag_list, 'category__not_in' => array(NULL), // 不包括的分类ID,可以把NULL换成分类ID 'post__not_in' => array($post->ID), 'showposts' => 0, // 显示相关文章数量 'caller_get_posts' => 1, 'orderby' => 'rand' ); query_posts($args); if(have_posts()):while (have_posts()&&$pos< =11) : the_post(); update_post_caches($posts); ?> <li style="line-height:24px"><span class="title"><a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php if(get_the_title())the_title();else the_time('Y-m-d'); ?></a></span> </li> <?php $pos++;endwhile;wp_reset_query();endif; ?> <?php } //end of rand by tags ?> <?php if($pos<=11): //如果tag相关文章少于10篇,那么继续以分类作为相关因素列出相关文章 $cats = wp_get_post_categories($post->ID); if($cats){ $cat = get_category( $cats[0] ); $first_cat = $cat->cat_ID; $args = array( 'category__in' => array($first_cat), 'post__not_in' => array($post->ID), 'showposts' => 0, 'caller_get_posts' => 1, 'orderby' => 'rand' ); query_posts($args); if(have_posts()): while (have_posts()&&$pos< =11) : the_post(); update_post_caches($posts); ?> <li style="line-height:24px"><span class="title"><a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title_attribute();?>"><?php if(get_the_title())the_title();else the_time('Y-m-d'); ?></a></span> </li> <?php $pos++;endwhile;wp_reset_query();endif; ?> <?php } endif; //end of rand by category ?> <?php if($pos<=10){ //如果上面两种相关都还不够10篇文章,再随机挑几篇凑成10篇 ?> <?php query_posts('showposts=10&orderby=rand');while(have_posts()&&$pos<=11):the_post(); ?> <li style="line-height:24px"><span class="title"><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php if(get_the_title())the_title();else the_time('Y-m-d') ?></a></span></li> <?php $pos++;endwhile;wp_reset_query();?> <?php } ?> |
2012年09月02日 19:19 沙发
大力支持啊