两个元字段的WP_Query顺序

时间:2016-09-24 20:30:40

标签: wordpress

我需要通过两个元字段来命令WP_Query:元顺序和元名字。首先按数字顺序排序,如果为空,则按元名称ASC排序。我怎么做,文档不是很清楚。我试过了,但它不起作用。

for line in all_lines:
  if line.startswith("company Name:"):
      name = companies_re.search(line) 
      if name:
         ...
      break

2 个答案:

答案 0 :(得分:0)

您需要使用pre_get_posts操作才能实现此目的。 请参阅https://wordpress.stackexchange.com/q/169999关于如何操作的答案。

答案 1 :(得分:0)

这对我有用:

array(
  'post_type'   => 'student',
  'meta_query'  => array(
    'relation' => 'OR',
    'custom_order_clause' => array(
      'key' => 'meta-custom-order',
      'compare' => 'LIKE',
    ),
    'last_name_clause' => array(
      key' => 'meta-last-name',
      'compare' => '=',
    ),
   ),
   'orderby' => array(
     'custom_order_clause' => 'ASC',
     'last_name_clause' => 'ASC'
   ),
 )

CAVEAT: 确保从DB中删除空的元值,否则这将无效。