找回密码
 免费注册

WordPress 根据post_meta排序文章(当meta_key不存在时)

[复制链接]
admin 发表于 2020-10-23 19:24:53 | 显示全部楼层 |阅读模式
最近给一个客户二次开发主题,需要加多条件筛选,其中有个筛选就是根据文章的某个post_meta值进行排序,一般的方法是:
  1. $args = array(
  2. 'paged' => $paged
  3. );
  4. $args['meta_key'] = 'favorites'; //这个就是post_meta
  5. $args['orderby'] = 'meta_value_num';
  6. query_posts($args);
复制代码
但是以上代码有个问题,当文章没有此post_meta时,是不会显示出来的,这个很尴尬吧~那个解决方案如下:
  1. $args = array(
  2. 'paged' => $paged
  3. );
  4. //$args['meta_key'] = 'favorites'; //这个就是post_meta
  5. $args['meta_query'] = array();
  6. array_push($args['meta_query'], array(
  7. 'relation' => 'OR',
  8. 'exist_clause' => array(
  9. 'key' => 'favorites',
  10. 'compare' => 'EXISTS'
  11. ),
  12. 'not_exist_clause' => array(
  13. 'key' => 'favorites',
  14. 'compare' => 'NOT EXISTS'
  15. ),
  16. ) );
  17. $args['orderby'] = 'meta_value_num';
  18. query_posts($args);
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

QQ|Archiver|手机版|小黑屋|信息共享网

GMT+8, 2024-5-16 10:52 , Processed in 0.083318 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表