'posts_per_page'=> -1不能正常工作
问题描述:
我想通过$ arg中的所有帖子运行查询,但它仅适用于11个帖子。我已经尝试了很多来自论坛的建议,但是我无法实现。'posts_per_page'=> -1不能正常工作
我需要做什么?
function test_update_random_number()
{
global $post;
$args = array (
'orderby' => 'meta_value LIKE "%Yes%" rand',
'order' => 'DESC',
'meta_key' => 'feature_in_search',
'post_type' => 'therapist',
'post_status' => 'publish',
'posts_per_page' => '-1'
);
$myposts = new WP_Query($args);
if ($myposts->have_posts()) :
while ($myposts->have_posts()) : $myposts->the_post();
$value = get_field("feature_in_search", $post_id);
if (strpos($value, 'es') !== false) {
$random_value = rand(1, 100);
update_field("field_58aebd8e060c0", $random_value, $post_id);
} else {
$random_value2 = rand(100, 600);
update_field("field_58aebd8e060c0", $random_value2, $post_id);
}
endwhile;
wp_reset_postdata();
endif;
}
答
你的问题是不是与posts_per_page
参数,但与orderby
参数。你有'orderby' => 'meta_value LIKE "%Yes%" rand',
,这没有多大意义。此外,如果你想随机订购,订购ASC
或DESC
也没有意义... :)
显然你想筛选所有具有meta_field“feature_in_search”的值为“是”的帖子, ,并随机排序。所以,你应该做的:
$args = [
'meta_key' => 'feature_in_search',
'meta_value' => 'Yes',
'post_type' => 'therapist',
'post_status' => 'publish',
'posts_per_page' => -1,
'orderby' => 'rand'
];
如果你真的想寻找的东西,包含“是”(和使用“LIKE”搜索),你需要建立一个适当的meta query。
我认为你错误的参数变量类型''posts_per_page'=>'-1'//这个参数必须是int' - 参见https://codex.wordpress.org/Class_Reference/WP_Query#Pagination_Parameters – htmlbrewery
没有文档说-1是一个选项?我尝试了一个像posts_per_page'=> 500的大数字。它也不起作用。 – LTech
尝试使用''posts_per_page'=> -1'也可以删除'meta_key'和'orderby'这个参数。 – htmlbrewery