WordPress首页日志随机显示

日期: 标签:WordPress教程 36 条留言
如需帮忙改代码,或者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

业余编程爱好者,主业是淘宝店主,卖些工艺品,感兴趣可以到我的淘宝店看看(旺旺不提供技术咨询):西西弗sisyphe

36 条留言

点此留言
  1. 白大王

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

  2. Ludou

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

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

  3. 感谢

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

  4. 南京seo

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

  5. 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>

  6. only博客

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

  7. Ludou

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

  8. only博客

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

  9. Ludou

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

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

  10. Aaron

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

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

  11. heyladies

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

  12. Ludou

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

  13. darktoy

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

  14. Ludou

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

  15. darktoy

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

  16. wangxxx

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

  17. EinCy

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

  18. Ludou

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

  19. low

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

  20. Ludou

    @low 随机

  21. matata

    确实需要。感谢。

  22. 任鸟飞

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

  23. 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);
    }

  24. sn

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

  25. lft59598

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

  26. 遊戲長~丹

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

  27. Ludou

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

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

  28. 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; ?>

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

  29. Ludou

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

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

  30. jieli

    @Ludou 感谢~ :)

  31. 二手科学家

    太棒了

  32. amov

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

  33. 禽兽

    <?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', 用来随机排序。

  34. 132413

    他会不会增加主机负担

  35. 露兜

    @132413 不会

  36. 彼铭

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

发表留言