如何仅在 10 个最近的帖子上随机



>我面临一个客户请求,他有 100 个带分页的产品(每页 10 个),他只想在前 10 个产品上随机,而对于其余页面没有随机(对于除 1 以外的其他分页)

我有这个疑问:

$args = array(
    'post_type' => array('products'),
    'paged'=> ( get_query_var('paged') ? get_query_var('paged') : 1 ),
);
$products = new Wp_Query($argss);
... Loop here ...
... End loop ...
... Pagination ...

产品显示良好,分页有效,只有我问自己如何实现这一目标。如果我使用:

if( $paged == 1 ) $args['orderby'] = 'rand';

它会在第一页上随机,但他会选择前 10 个产品以外的其他产品,目标是只随机搜索页面上的前 10 个产品,而不选择其他产品。

感谢您的帮助。

尝试以下操作

if(get_query_var( 'paged', 1 )==1)
{
    shuffle($products->posts);
}

$products = new Wp_Query($argss);

试试这个。

如果页面为 1,则设置为 'order' => 'rand'

     $args = array(
            'post_type' => array('products'),
            'paged'=> ( get_query_var('paged') ? get_query_var('paged') : 1 ),
            'order_by' => 'ID',
            'post_status'=> 'publish',
            'posts_per_page' => -1,
        );
        if($args['paged'] == 1){
            $args['order'] = 'rand';
        } else{
          $args['order'] = 'DESC';
        }
        $products = new Wp_Query($args);

最新更新