Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 没有随机排序的帖子_Php_Wordpress - Fatal编程技术网

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”,这起到了作用(这不是随机的,但至少它改变了我们最近发布的帖子……然后才保留了相同的帖子)。再次感谢!