WordPress相关文章调取方式变为同标签文章随机显示
编辑:狂族晨曦 来源:WordPress技巧 日期:2016-03-09 阅读: 2,216 次 抢个沙发 百度已收录
先森现在闲来无事就折腾网站,还在想着怎么给文章图片加水印等系列问题,又想到前几天把标签页的文章缩略图用上了七牛缩略图,使文章加载时的图片体积减小了很多,同理可以把每篇文章下的相关文章的缩略图也用上。关于文章的缩略图,大家可以看看:
继续上文,先森按照同样的方法后,发现每篇文章下面的相关文章,竟然都是一样的,这让先森大吃一惊:
文章1下面的相关文章
文章1下面的相关文章
解释一下,先森用的相关文章的代码,是倡萌在WordPress大学上分享的:
-
WordPress大学:WORDPRESS添加相关文章功能(标题/缩略图样式)
先森想要实现的情况是,显示本篇文章同一个标签下的随机5篇文章。这本来是很简单的一件事,但是先森还是绕了很大的弯子。先森把倡萌提供的代码一句一句的研究,重点是有时候还跳着,最后发现刚好把重要部分跳过了。但其实还是有好处的,就是让先森对WordPress的代码理解的更多了。
下面先森把倡萌提供的代码经过先森注解后的代码贴出来:
<h3 class="related_articles"><span>相关文章</span></h3> <ul class="related_img"> <?php $post_num = 5; //显示文章数量 $exclude_id = $post->ID; //获取当前文章的ID $posttags = get_the_tags(); //get_the_tags()递交给$posttags当前文章所以标签的名称 $i = 0; if ( $posttags ) { $tags = ''; foreach ( $posttags as $tag ) $tags .= $tag->term_id . ','; //分别将$posttags中标签的名词递交给$tag,然后将获取到的标签ID递交给$tags $args = array( 'post_status' => 'publish', 'tag__in' => explode(',', $tags), //包括的标签 'post__not_in' => explode(',', $exclude_id), //不包括当前文章 'caller_get_posts' => 1, //排除返回的文章上方的置顶文章 'orderby' => 'rand', //rand:随机排序; 'posts_per_page' => $post_num //显示相关文章数量 ); query_posts($args); while( have_posts() ) { the_post(); ?> <li class="related_box" > <div class="r_pic"> <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" target="_blank"> <img src="<?php echo post_thumbnail_src(); ?>?imageView2/1/w/130/h/100/q/100" alt="<?php the_title(); ?>" class="thumbnail" /> </a> </div> <div class="r_title"><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" target="_blank" rel="bookmark"><?php the_title(); ?></a></div> </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 . ',';//为$cats赋值分类ID $args = array( 'category__in' => explode(',', $cats), 'post__not_in' => explode(',', $exclude_id), 'caller_get_posts' => 1, 'orderby' => 'rand', //随机排序 'posts_per_page' => $post_num - $i ); query_posts($args); while( have_posts() ) { the_post(); ?> <li class="related_box" > <div class="r_pic"> <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" target="_blank"> <img src="<?php echo post_thumbnail_src(); ?>" alt="<?php the_title(); ?>" class="thumbnail" /> </a> </div> <div class="r_title"><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" target="_blank" rel="bookmark"><?php the_title(); ?></a></div> </li> <?php $i++; } wp_reset_query(); } if ( $i == 0 ) echo '<div class="r_title">没有相关文章!</div>'; ?> </ul>
当然,有些改动,是为了适应本站,大家可以结合着原文看。上面这么长一堆,实现了随机的部分其实很简单,重点在于第17行:
'orderby' => 'rand',
“orderby”是选择排序的方式,先森写的是“rand”,倡萌分享出来的是选择“comment_date”。下面解释一下“orderby”的所有参数:
-
orderby=date 按发布日期排序
-
orderby=modified 按修改时间排序
-
orderby=ID 按文章ID排序
-
orderby=comment_count 按评论最多排序
-
orderby=title 按标题排序
-
orderby=rand 随机排序
所以这里选择“rand”就能满足先森的要求了。更改后到文章中一刷新,看到果然不一样了:
变为随机显示的相关文章
以上就是先森摸索的过程,希望能够给大家提供一个参考。
历史上的今天:
- 2017: 最近在忙什么?破解(10)
转载请注明出处来自https://www.capjsj.cn/wp_xgwzdqfsbwtbqwzsjxs.html