我在一个类别中使用此元查询:
$args = array(
"posts_per_page" => 12,
"post_type" => array( "event", "post" ),
"post_status" => "publish",
"category" => $tid,
\'meta_query\' => array(
\'relation\' => \'OR\',
array(
\'key\' => \'event_start\',
\'value\' => date("Y-m-d H:i:s"),
\'compare\' => \'>=\',
\'type\' => \'DATE\'
),
array(
\'key\' => \'event_start\',
\'compare\' => \'NOT EXISTS\'
)
),
array(
\'key\' => \'_thumbnail_id\',
\'compare\' => \'EXISTS\'
),
array(
\'key\' => \'foreign_language\',
\'value\' => 0
)
);
$posts = get_posts( $args );
它应该返回12个帖子,但只返回11个。如果我设置
posts_per_page
到13,返回12。
可能是什么问题?
最合适的回答,由SO网友:Pieter Goosen 整理而成
$posts
是一个保留的全局变量,用于存储$posts
属性。通过使用$posts
作为局部变量,您正在中断主查询和$posts
全局变量。这会导致意外的输出。
您应该使用唯一的自定义变量作为局部变量。你可以通过改变
$posts = get_posts( $args );
大概是
$posts_array = get_posts( $args );