Php 没有随机排序的帖子
我试图让随机帖子出现在此帖子循环中:Php 没有随机排序的帖子,php,wordpress,Php,Wordpress,我试图让随机帖子出现在此帖子循环中: $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;
$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'=>'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();
$query=新的WP\u查询(数组)(
“发布状态”=>“发布”,
'orderby'=>'title',
'orderby'=>'rand',
“猫”=>“3”,
“订单”=>“ASC”,
“每页帖子数”=>4
));
$post\u count=$query->post\u count;
$posts\u per\u column=ceil($post\u count/4);
$rows=array();
$count=0;
而($query->have_posts())
{$query->the_post();
如果($rows[$count]==“”){$rows[$count]=“”;}
$rows[$count]=$rows[$count]。';
$count++;
如果($count==$posts\u per\u列){$count=0;}
}
foreach($row作为$row){echo$row.';}
wp_reset_query();
您当前正在运行两个orderby
参数,这会导致忽略其中一个参数。您知道按'orderby'=>'title',
和'orderby'=>'rand',
排序是不兼容的
以下方面应起作用:
$query = new WP_Query( array(
'post_status' => 'publish',
'orderby' => 'RAND',
'cat' => '3',
'posts_per_page' => 4
) );
orderby(字符串|数组)
按参数对检索到的帖子进行排序。默认为“日期(发布日期)”。可以传递一个或多个选项。…
“兰德”-随机顺序。
“标题”-按标题排序。
此外,当您使用
'orderby'=>'RAND',
时,不需要使用'orderby'=>'ASC',
(它只是被忽略了,您正在使用PASSING和参数,这会减慢查询速度)。默认情况下,该值设置为'orderby'=>'DESC',
顺序(字符串|数组)
指定“orderby”参数的升序或降序。默认为“DESC”。一个数组可用于多个order/orderby集合。“ASC”-从最低值到最高值的升序(1、2、3;a、b、c)。
“DESC”-从最高值到最低值(3、2、1;c、b、a)的降序排列。
Source@您当前正在运行两个
orderby
参数,这会导致忽略其中一个参数。您知道按'orderby'=>'title',
和'orderby'=>'rand',
排序是不兼容的
以下方面应起作用:
$query = new WP_Query( array(
'post_status' => 'publish',
'orderby' => 'RAND',
'cat' => '3',
'posts_per_page' => 4
) );
orderby(字符串|数组)
按参数对检索到的帖子进行排序。默认为“日期(发布日期)”。可以传递一个或多个选项。…
“兰德”-随机顺序。
“标题”-按标题排序。
此外,当您使用
'orderby'=>'RAND',
时,不需要使用'orderby'=>'ASC',
(它只是被忽略了,您正在使用PASSING和参数,这会减慢查询速度)。默认情况下,该值设置为'orderby'=>'DESC',
顺序(字符串|数组)
指定“orderby”参数的升序或降序。默认为“DESC”。一个数组可用于多个order/orderby集合。“ASC”-从最低值到最高值的升序(1、2、3;a、b、c)。
“DESC”-从最高值到最低值(3、2、1;c、b、a)的降序排列。
Source@我想可以安全地假设要显示的帖子超过4篇?您是否有一个缓存插件可能会阻止与数据库的实际交互?您还有两个不同的“orderby”元素和一个“order”元素。我建议删除其他帖子。我想假设要显示的帖子超过4篇是安全的?您是否有一个缓存插件可能会阻止与数据库的实际交互?您还有两个不同的“orderby”元素和一个“order”元素。我建议删除其他的。谢谢你的帮助!出于某种原因,它仍然没有调出随机顺序。我没有缓存插件(但我相信wpEngine主机上的服务器有)。我最终按照建议删除了“orderby=>'title',然后添加了“offset'=>1”,这起到了作用(这不是随机的,但至少它改变了我们最近发布的帖子……然后才保留了相同的帖子)。再次感谢!谢谢你的帮助!出于某种原因,它仍然没有调出随机顺序。我没有缓存插件(但我相信wpEngine主机上的服务器有)。我最终按照建议删除了“orderby=>'title',然后添加了“offset'=>1”,这起到了作用(这不是随机的,但至少它改变了我们最近发布的帖子……然后才保留了相同的帖子)。再次感谢!