我在一个网站上工作,该网站的博客帖子包含了单个类别下的表演者信息,可以使用自定义分类法(父术语和子术语)进行过滤。为了尽可能公平,网站所有者希望分类和筛选结果以随机顺序显示。这就是我能够找到的“随机化”:
add_action( \'pre_get_posts\', \'my_change_sort_order\');
function my_change_sort_order($query){
if(is_category(\'artstour-roster\') OR is_tax(\'artistic_disciplines\') OR is_tax(\'geographic_availability\') OR is_tax(\'additional_services\') OR is_tax(\'core_audiences\') OR is_tax(\'additional_populations\')):
//Set the order ASC or DESC
$query->set( \'order\', \'ASC\' );
//Set the orderby
$query->set( \'orderby\', \'rand\' );
endif;
};
这将以随机顺序显示文章摘录,每页6篇。但是,如果您有多个页面的结果并在页面之间移动,结果的数量将保持不变,但移动到下一页或上一页会产生新的随机顺序,从而导致重复和遗漏。
例如,“cappella”子分类术语的过滤器会产生7个结果。当移动到结果的第二页时,仅显示一个结果条目,但该单个结果将再次随机化,显示先前在前一页上看到的一个结果,从而使过滤结果中的一个过滤摘录完全省略。
有没有办法跨页面“锁定”随机结果集?