同款下载

分享几个WordPress不用插件调用随机文章的方法

在博客的文章页面添加随机文章,不仅可以增强用户粘性,还可以把一些早期发布的文章时不时的展现一下,不至于永远沉下去。此外还有一个更重要的作用,那就是当搜索引擎来爬你的文章的时候,每次都会有变化,同时还能增加文章的内链。那么如何实现何在WordPress中添加随机文章,其实办法无非两种,要么通过插件来实现,要么通过添加代码来解决。使用插件的话也是有很多选择,比如AJAX Random Posts、中文工具箱、Random Pages Widget等等,对不想折腾代码的同学来说不失为不错的方法,简单省事,操作方便,最大的问题就是插件多了会影响一点点速度。今天给大家分享几个WordPress不用插件调用随机文章的方法,一来代码效率高,二来灵活性强,而且这些方法也非常简单,下面我们一起来学习下。

首先我们先来了解下WordPress随机文章的获取原理

WordPress 的文章查询函数 get_posts() 有个参数 orderby 指明了获取文章时的排序方式。通常我们是按照文章发布日期排序,比如 WordPress 站点首页、分类页和标签页中的文章列表。orderby 还可以是 rand,它使用 MySQL 的 RAND() 函数来确定排序参数,也就是随机排序。

使用方法如下:

  1. $args = array( 'numberposts' => 5, 'orderby' => 'rand', 'post_status' => 'publish' );
  2. $rand_posts = get_posts( $args );

这样就能得到随机排序(第 2 个参数)的已发布(第 3 个参数)文章中的 5 篇(第 1 个参数)。

需要特别注意的是,如果没有第 3 个参数,它可能会将草稿之类的文章也显示出来。

方法一:向主题模板中添加

最直接的用法就是修改主题模板,在需要的位置放入下面的代码。

  1. <ul>
  2. <?php
  3. $args = array( 'numberposts' => 5, 'orderby' => 'rand', 'post_status' => 'publish' );
  4. $rand_posts = get_posts( $args );
  5. foreach( $rand_posts as $post ) : ?>
  6. <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
  7. <?php endforeach; ?>
  8. </ul>

这样就能以列表的形式展示 5 篇带链接的随机文章。这个方法虽然简单,但用到了get_posts,如果将代码放在子页模板里,在它之后的代码,比如如果在后面同时调用了当前文章的评论,那评论内容很可能出现的是最后一个随机到的文章的评论,而非当前文章的评论。

PS:每次升级或更换主题都需要重新修改模板(使用子主题的话可能不需要每次升级都修改)

方法二:修改主题 functions.php 文件

在function.php中加入如下方法

  1. /**
  2. * 随机文章
  3. */
  4. function random_posts($posts_num=5,$before='<li>',$after='</li>'){
  5. global $wpdb;
  6. $sql = "SELECT ID, post_title,guid
  7. FROM $wpdb->posts
  8. WHERE post_status = 'publish' ";
  9. $sql .= "AND post_title != '' ";
  10. $sql .= "AND post_password ='' ";
  11. $sql .= "AND post_type = 'post' ";
  12. $sql .= "ORDER BY RAND() LIMIT 0 , $posts_num ";
  13. $randposts = $wpdb->get_results($sql);
  14. $output = '';
  15. foreach ($randposts as $randpost) {
  16. $post_title = stripslashes($randpost->post_title);
  17. $permalink = get_permalink($randpost->ID);
  18. $output .= $before.'<a href="'
  19. . $permalink . '" rel="bookmark" title="';
  20. $output .= $post_title . '">' . $post_title . '</a>';
  21. $output .= $after;
  22. }
  23. echo $output;
  24. }

在需要显示的地方调用如下代码

  1. <div class="right">
  2. <h3>随便找点看看!</h3>
  3. <ul>
  4. <?php random_posts(); ?>
  5. </ul>
  6. </div><!-- 随机文章 -->

不复杂吧,以上代码不依赖也不影响其他代码。

方法三:用query_posts生成随机文章列表

在需要显示的地方直接调用如下代码

  1. <?php
  2. query_posts(array(‘orderby => rand’, showposts => 2));
  3. if (have_posts()) :
  4. while (have_posts()) : the_post();?>
  5. <a href=”<?php the_permalink() ?>
  6. rel=”bookmark”
  7. title=<?php the_title(); ?>”><?php the_title(); ?></a>&nbsp;
  8. <?php comments_number(”, ‘(1)’, ‘(%)’); ?>
  9. <?php endwhile;endif; ?>

方法四:在随机文章中显示标题和文章摘要

在需要显示的地方直接调用如下代码

  1. <?php
  2. query_posts(array(‘orderby => rand’, showposts => 1));
  3. if (have_posts()) :
  4. while (have_posts()) : the_post();
  5. the_title(); //这行去掉就不显示标题
  6. the_excerpt(); //去掉这个就不显示摘要了
  7. endwhile;
  8. endif; ?>

方法五: 调用同分类随机文章

上面介绍的代码都是基于全站文章,这里再补充一个调用同分类随机文章的代码,将下面代码放到主题文章页面single模板或者边栏sidebar模板适当位置即可:

  1. <ul>
  2.  
  3. <?php
  4.  
  5. $cat = get_the_category();
  6.  
  7. foreach($cat as $key=>$category){
  8.  
  9. $catid = $category->term_id;
  10.  
  11. }
  12.  
  13. $args = array('orderby' => 'rand','showposts' => 8,'cat' => $catid );
  14.  
  15. $query_posts = new WP_Query();
  16.  
  17. $query_posts->query($args);
  18.  
  19. while ($query_posts->have_posts()) : $query_posts->the_post();
  20.  
  21. ?>
  22.  
  23. <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
  24.  
  25. <?php endwhile;?>
  26.  
  27. <?php wp_reset_query(); ?>
  28.  
  29. </ul>

以上就是为大家准备的wordpress应用小技巧,希望能帮助到大家~也欢迎大家留言探讨!

下载说明:

1、本站资源都是白菜价出售,同样的东西,我们不卖几百,也不卖几十,甚至才卖几块钱,一个永久会员能下载全站100%源码了,所以单独购买也好,会员也好均不提供相关技术服务。

2、如果源码下载地址失效请/联系站长QQ进行补发。

3、本站所有资源仅用于学习及研究使用,请必须在24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担。资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您权益请联系本站删除!

4、本站站内提供的所有可下载资源(软件等等)本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发);但本网站不能保证资源的准确性、安全性和完整性,用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug;同时本站用户必须明白,【源码源码ui网】对提供下载的软件等不拥有任何权利(本站原创和特约原创作者除外),其版权归该资源的合法拥有者所有。

5、请您认真阅读上述内容,购买即以为着您同意上述内容。

EB站 » 分享几个WordPress不用插件调用随机文章的方法

发表回复