最近给一个客户二次开发主题,需要加多条件筛选,其中有个筛选就是根据文章的某个post_meta值进行排序,一般的方法是:

$args = array(   'paged' => $paged   );   $args['meta_key'] = 'favorites'; //这个就是post_meta   $args['orderby'] = 'meta_value_num';   query_posts($args);

但是以上代码有个问题,当文章没有此post_meta时,是不会显示出来的,这个很尴尬吧~那个解决方案如下:

$args = array(   'paged' => $paged   );   //$args['meta_key'] = 'favorites'; //这个就是post_meta   $args['meta_query'] = array();   array_push($args['meta_query'], array(   'relation' => 'OR',   'exist_clause' => array(   'key' => 'favorites',   'compare' => 'EXISTS'   ),   'not_exist_clause' => array(   'key' => 'favorites',   'compare' => 'NOT EXISTS'   ),   ) );   $args['orderby'] = 'meta_value_num';   query_posts($args);
www.npspro.cn软师兄
软师兄 » WordPress 根据post_meta排序文章(当meta_key不存在时)
50T免费网盘资源大集合【持续更中~~~~】:点击查看