强制WordPress变得更加随机

时间:2015-06-09 作者:AKNL

我使用一个随机的wp\\u查询从总共600多篇帖子中加载3篇帖子。

        <?php
            $args = array(
                \'post_type\' => \'post\',
                \'cat\' => 1,
                \'orderby\' => \'rand\',
                \'posts_per_page\' => 3
            );
            $all_posts = new WP_Query( $args );

            while ( $all_posts->have_posts() ) : $all_posts->the_post();

                get_template_part( \'content\' );

            endwhile; 

        ?>
        <?php wp_reset_postdata(); ?>
效果很好,但对很多人来说,很多相同的图像会在随机显示中一次又一次弹出。所以随机性似乎不是真正的随机性。至少感觉不是这样。有没有办法强制Wordpress跳过随机显示的图像并加载新图像?还是这件事不是我能控制的?我在网上真的找不到答案。

提前感谢!

2 个回复
SO网友:ScottG

我想指出的是,有时在随机情况下,根本不是代码,如果您使用的主机进行自动缓存或使用缓存插件,则可能页面或查询本身正在缓存,因此会显示相同的结果。

解决此问题的方法是让主机或插件在包含查询的页面上完全关闭缓存。

SO网友:s_ha_dum

你并不是在说强迫WordPress变得更加随机;您所说的是强制数据库服务器更加随机。WordPress刚刚按下ORDER BY RAND() 到服务器。是的,生成的“随机”并不是真正的随机,它是伪随机的,但就所有意图和目的而言,它应该足够接近。我能想到的唯一有用的办法就是\'ignore_sticky_posts\' => true 通过参数数组。

$args = array(
  \'post_type\' => \'post\',
  \'cat\' => 1,
  \'orderby\' => \'rand\',
  \'posts_per_page\' => 3,
  \'ignore_sticky_posts\' => true
);
\'ignore_sticky_posts\', 从我的角度来看,有点令人费解,默认为false 这意味着,除非将参数显式传递给查询,否则粘性帖子总是会被拖到顶部。这对我来说是倒退,但事实确实如此。无论如何,如果你有很多贴子可以解释为什么你一遍又一遍地看到同样的事情。

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post