1 回答
TA贡献1865条经验 获得超7个赞
将您的自定义替换为以下内容:WP_Query
set_query_var( 'orderby', 'meta_value' );
set_query_var( 'orderby', 'DESC' );
set_query_var( 'meta_key', 'book_release_date' );
set_query_var( 'meta_type', 'NUMERIC' );
听起来您有一个按类别等过滤的书籍的工作列表,现在您正在尝试进入该列表以添加.如果是这样,那么我看到一个问题:你发布的代码会失去过滤,因为你创建了一个全新的帖子循环。wp_reset_query恢复了过滤后的后循环,这一事实使我相信,我们可以简单地通过set_query_var修改此现有查询,而不是创建一个新的。orderbyWP_Query
奖励:如果您在使用,请执行以下操作:pre_get_postsfunctions.php
function wpse139657_orderby($query){
// Uncomment this if() statement once you confirm that the orderby works
//if (is_admin() || $query->query_vars['post_type'] != 'book') return $query;
$query->set( 'orderby', 'meta_value' );
$query->set( 'order', 'DESC' );
$query->set( 'meta_key', 'book_release_date' );
$query->set( 'meta_type', 'NUMERIC' );
return $query;
}
add_filter('pre_get_posts','wpse139657_orderby');
- 1 回答
- 0 关注
- 77 浏览
添加回答
举报