我想通过$ arg中的所有帖子运行查询,但它只适用于11个帖子。我已经在论坛上尝试了很多建议,但我无法让它发挥作用。
我需要做什么?
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;
}
答案 0 :(得分:2)
您的问题不在于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。