簡體   English   中英

帖子不是隨機排序的

[英]Posts not being ordered randomly

我試圖讓隨機帖子出現在這個帖子循環中:

首頁帖子循環截圖

即使我添加了'orderby' => 'rand',它仍然始終顯示相同的 4 個帖子。 這是我的 post 循環的完整代碼:

$query = new WP_Query(array(
'post_status'   => 'publish',
'orderby'       => 'title',
'orderby' => 'rand',
'cat' => '3',
'order'         => 'ASC',
'posts_per_page'    => 4
));
$post_count = $query->post_count;
$posts_per_column = ceil($post_count / 4);
$rows = array();
$count = 0;
while ($query->have_posts())
{ $query->the_post();
if($rows[$count] == ""){ $rows[$count] = ''; }
            $rows[$count] = $rows[$count] . '<div class="col-post"><div class="post-title"><a href="'.get_permalink().'">'.get_the_title().'</a></div></div>';
                                            $count++;
                                            if ($count == $posts_per_column ) { $count = 0; }
                                            }
                            foreach ($rows as $row) { echo $row . ''; }
        wp_reset_query();

您當前正在運行兩個orderby arguments,這導致其中一個被忽略。 您明白按'orderby' => 'title','orderby' => 'rand',排序是不兼容的。

以下應該工作:

$query = new WP_Query( array(
  'post_status' => 'publish',
  'orderby' => 'RAND',
  'cat' => '3',
  'posts_per_page' => 4
) );

orderby(字符串|數組)

按參數對檢索到的帖子進行排序。 默認為“日期(post_date)”。 可以傳遞一個或多個選項。
...
'rand' – 隨機順序。
'title' – 按標題排序。

此外, 'order' => 'ASC',不是必需的(它只是被忽略了,你正在傳遞和爭論什么都不會減慢查詢速度)因為你正在使用'orderby' => 'RAND', , by默認值設置為'orderby' => 'DESC',

順序(字符串 | 數組)

指定'orderby'參數的升序或降序。 默認為“DESC”。 一個數組可以用於多個 order/orderby 集。
'ASC' – 從最低值到最高值的升序(1、2、3;a、b、c)。
'DESC' – 從最高值到最低值的降序(3、2、1;c、b、a)。

來源@ https://developer.wordpress.org/reference/classes/wp_query/#order-orderby-parameters

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM