1. <div id="11111"></div>

    1. <div id="11111"></div>

      1. <div id="11111"></div>

        WordPress首页日志随机显示

        日期: 标签:WordPress教程 37 条留言
        如需帮忙改代码,或者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」创作共享协议,转载请标注以下信息:
        原文出处:露兜博客 http://www.szeverich.net.cn/wordpress-home-post-rand-show.html
        露兜
        kaapass@outlook.com  QQ 825533758

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

        37 条留言

        点此留言
        1. 白大王

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

        2. Ludou

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

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

          • 感谢

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

        3. 南京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博客

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

              • Ludou

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

              • only博客

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

              • Ludou

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

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

            • Aaron

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

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

        4. heyladies

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

          • Ludou

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

        5. darktoy

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

        6. wangxxx

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

        7. 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小时内的发布

        发表留言

        可以挣钱的游戏 457| 437| 161| 630| 475| 661| 368| 890| 617| 778| 874| 944| 298| 874| 346| 16| 41| 408| 216| 681| 351| 376| 816| 506| 782| 446| 367| 84| 637| 157| 66| 238| 331| 852| 335| 600|