我需要使用几个参数在博客中输出热门帖子:
不超过一周
按日期排序这是我的代码:
function evanre_custom_order_query( $query ) {
if ( is_admin() || ! $query->is_main_query() ) {
return;
}
$query_var_show = get_query_var( \'show\' );
if ( empty( $query_var_show ) ) {
return;
}
if ( \'popular\' === $query_var_show ) {
$query->set( \'orderby\', \'date\' );
$query->set( \'meta_query\', array(
array(
\'key\' => \'blt_upvotes\',
\'value\' => 250,
\'compare\' => \'>=\',
\'type\' => \'NUMERIC\',
),
) );
$query->set( \'date_query \', array(
array(
\'after\' => \'1 week ago\'
)
) );
}
}
add_action( \'pre_get_posts\', \'evanre_custom_order_query\' );
我的自定义query\\u var已注册并正常工作。按日期排序有效,meta\\u查询也有效。date\\u查询被完全忽略。我错过了什么?
最合适的回答,由SO网友:Paul \'Sparrow Hawk\' Biron 整理而成
您的$query->set()
.
而不是
$query->set( \'date_query \', ...
它应该是:
$query->set( \'date_query\', ...