Wordpress随机帖子循环仅适用于某一类别的某些帖子


Wordpress random post loop only for some posts of an category

有没有一种简单的方法可以说"在随机循环中集成类别MyCat帖子1到10"?我问,因为我不希望随机循环将我的所有帖子整合到一个类别中。这就是这个脚本的问题:

<?php query_posts(array(
  'showposts' => 1,
  'orderby' => 'rand',
  'category_name' => 'MyCat'
));
if (have_posts()) : while (have_posts()) : the_post(); ?>

我需要的是这样的东西:

<?php query_posts(array(
  'showposts' => 1,
  'orderby' => 'rand',
  'category_name' => 'MyCat'
  'post_number_of_category' => '1-10'    <-- something like this
));
if (have_posts()) : while (have_posts()) : the_post(); ?>

有人能帮我吗?

您尝试过使用get_postsposts_per_page/numberposts选项吗?

<?php
$rand_posts = get_posts(array(
  'numberposts' => 10,
  'posts_per_page' => 10,
  'orderby' => 'rand',
  'category_name' => 'MyCat'
));
foreach ( $rand_posts as $post ) {
  setup_postdata( $post );
  the_post();
}; ?>

根据WordPress的说法,query_posts效率低下,并且showposts可能会被弃用

首次登陆谷歌:https://wordpress.org/support/topic/how-to-get-random-post

<?php query_posts('orderby=rand&showposts=1&cat=75,76,77'); ?>

您可能想要的是post__in选项:

query_posts(array(
    'showposts' => 1,
    'orderby' => 'rand',
    'category_name' => 'MyCat',
    'post__in' => array(1, 2, 3, ...)
));

这允许您定义将包含在查询中的特定帖子ID。

请注意,与category_name结合使用似乎不合逻辑,因为您可以指定确切的post ID。