WordPress首页日志随机显示

日期: 标签:WordPress教程
如需帮忙改代码,或者WordPress二次开发、PHP网站建设等需求,可联系我购买付费服务:  点此联系我

打开WordPress主题目录,打开index.php或home.php,搜索代码:

while (have_posts()) :

将其改成:

query_posts('orderby=rand');while (have_posts()) :

接着将

<?php endwhile; ?>

改成:

<?php endwhile;wp_reset_query(); ?>

 

注意:以上方法会跟wp-pagenavi插件发生冲突,导致无法翻页,请将以上方法中的

query_posts('orderby=rand'); while (have_posts()) :

改成:

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args=array(
    'orderby'=>rand,
    'paged'=>$paged,
);
query_posts($args);
while (have_posts()) :

     使用WordPress函数query_posts,可以控制文章的输出方式,关于该函数详细用法,详见WordPress官方文档:http://codex.wordpress.org/Function_Reference/query_posts

-- 完 --

本文采用 「CC BY-NC-SA 4.0」创作共享协议,转载请标注以下信息:
原文出处:露兜即刻 https://www.ludou.org/wordpress-home-post-rand-show.html
露兜
kaapass@outlook.com  QQ 825533758

业余编程爱好者。

37 条留言

点此留言
  1. 白大王 白大王

    一般人肯定都是放sidebar,首页要是这么改那世界就乱套了。
    呵呵

  2. Ludou

    这里只提供方法,并不是一定要用!

    但是这个功能,肯定是有人需要的。

    • 感谢

      @Ludou 你说的还真对 我还真是需要这个功能哈 谢谢

  3. 南京seo 南京seo

    做优化的可以试试看,最好是让这个功能在侧边栏进行随机调用,这样就相当于是更新了。

    • Ludou

      @南京seo 想要在侧边栏调用随机文章,可以使用以下代码:
      <h3>随机文章</h3>
      <ul>
      <?php
      $posts = get_posts('numberposts=10&orderby=rand');
      foreach($posts as $post) {
      setup_postdata($post);
      echo '<li><a href="' . get_permalink() . '">' . get_the_title() . '</a></li>';
      }
      $post = $posts[0];
      ?>
      </ul>

      • only博客 only博客

        @Ludou 你好,我就是用这个方法,怎么随机文章不显示,请指导下:
        谢谢!

        • Ludou

          @only博客 请确定你修改的是sidebar.php ,并且是按照以上代码写的。

        • only博客 only博客

          @only博客 我想学习你那样,在网站的右侧面新建了个文本,代码放进去不行,我想问下,我想放在网站右侧面,该怎么做,请指导下:
          我的网站:www.ssqyxx.com

        • Ludou

          @only博客 直接在右侧面新建了文本框,填代码是不行的!因为那个文本框不支持放代码,即使放了没法执行!

          要想显示随机文章,请打开你的主题目录下的sidebar.php ,并且将以上代码放到相应位置就可以了。

      • Aaron Aaron

        @Ludou 用这段代码完成的随机文章,那么问题来了。如何显示随机文章的对应分类目录名。

        如:这个随机文章的标题 【分类名称】

  4. heyladies heyladies

    楼主我真是太感激你了~呵呵,没经你同意给你做了个外链~别介意哈,继续关注你的BLOG~~

    • Ludou

      @heyladies 另外注意下跟wp-pagenavi插件冲突的问题!

  5. darktoy darktoy

    我没成功……不知为什么,主题是autofocus

    • Ludou

      @darktoy 你要修改的是home.php不是index.php

      • darktoy darktoy

        @Ludou 额,成了。
        非常感谢!

  6. wangxxx wangxxx

    感谢分享 正好是我需要的功能
    还解释的那么详细

  7. EinCy EinCy

    那样子首页不就不显示最新文章了吗

    • Ludou

      @EinCy 如果你看过本文的标题,你还会觉得这是个问题吗?

  8. low

    首页日志随机显示,那翻页后的内页会怎么样?是按顺序的还是随机的?

  9. matata

    确实需要。感谢。

  10. 任鸟飞 任鸟飞

    能不能改成首页随机显示,后续页面不随机?

    • Ludou

      @任鸟飞 $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
      $args=array(
      'orderby'=>rand,
      'paged'=>$paged,
      );
      query_posts($args);

      改成:

      if(!is_paged()) {
      $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
      $args=array(
      'orderby'=>rand,
      'paged'=>$paged,
      );
      query_posts($args);
      }

  11. sn

    按照楼主的方法弄好了 不错啊

  12. lft59598

    你的PHP学得好好啊,我是一直也没学进去。

  13. 遊戲長~丹 遊戲長~丹

    刚好有这需求……可用….
    只是也有个问题….
    分类、关键字标籤底下的文章….也都随机了….
    跟原本的类别都没有关联了….这版主有办法解决吗???

    • Ludou

      @遊戲長~丹 如果你的主题目录下没有以下文件之一:archive.php、category.php、tag.php,那么就将原来的index.php复制一份,重新命名为archive.php
      然后再按文中说明修改index.php就可以了。

      或者,复制一份index.php,重命名为home.php,按文中说明修改home.php

  14. jieli

    <?php
    $recentPosts = new WP_Query();
    $recentPosts->query('cat=4&showposts=10');
    ?>
    <?php while ($recentPosts->have_posts()) : $recentPosts->the_post(); ?>
    <li> <a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a> <?php the_date('Y-m-d'); ?> </li>
    <?php endwhile; ?>

    露兜你好,我首页上用的这段显示指定分类文章,请问这段代码可以加随机显示吗?

    • Ludou

      @jieli $recentPosts->query('cat=4&showposts=10');
      改成:
      $recentPosts->query('cat=4&orderby=rand&showposts=10');

      <?php endwhile; ?>
      改成:
      <?php endwhile; wp_reset_postdata(); ?>

      • jieli

        @Ludou 感谢~ :)

  15. 二手科学家

    太棒了

  16. amov

    我用默认的模板,不能随机。。。奇怪了。。。

  17. 禽兽

    <?php $sticky = get_option('sticky_posts'); rsort( $sticky );
    //query_posts( array( 'post__in' => $sticky,'orderby' => 'rand', 'caller_get_posts' => 1, 'showposts' => dopt('d_sticky_count')?dopt('d_sticky_count'):2 ) );
    query_posts(
    array(
    'post__in' => $sticky,
    'orderby' => 'rand',
    'caller_get_posts' => 1,
    'showposts' => dopt('d_sticky_count')?dopt('d_sticky_count'):2
    )
    );
    while (have_posts()) : the_post();

    echo '<li class="item">';
    echo '<a target="_blank" href="'.get_permalink().'">';

    echo '<h3>'.get_the_title().'</h3>';

    echo deel_thumbnail();

    echo '</a>';

    echo "</li>";

    endwhile;
    wp_reset_query();
    ?>

    竟然没有效果。
    我只添加了一句 'orderby' => 'rand', 用来随机排序。

  18. 132413

    他会不会增加主机负担

  19. 彼铭

    问大佬一个问题,首页文章随机的同时能不能增加一个条件?条件就是随机排序的文章都是这个月内更新的,求帮忙!

    • 百货之家 百货之家

      @彼铭 同文,想首页随机的同时加个条件:随机显示最近24小时内的发布

发表留言