首页 > 解决方案 > 如何通过元键值订购 WP_Query 但首先删除字母?

问题描述

我正在尝试按元键对我的 WP_Query 进行排序,但问题是元键是字符串而不是数字。我想做的是以某种方式从字符串中删除字母,然后按此值排序。

例如,'meta_key' 包含数字前的字母,如 FOR04。是否有可能以某种方式从 $args 中删除这些字母?

我可以做这样的事情吗?

'meta_key' => preg_replace('/[^0-9]+/', 'test_2')   


  $args = array(
            'post_type' => 'property',
            'meta_query' => array(
                  array(
                    'key' => 'test_1',
                    'value' => $post->ID,
                    'compare' => 'IN',
                  ),
          ),
                  'meta_key' => 'test_2',
                  'orderby' => 'meta_value_num',
                  'posts_per_page' => -1
          );

我已经尝试过这种方法,但它没有正确排序它们..

  $args['meta_key'] = preg_replace('/[^0-9]+/', '', 'db-id');
            $args = array(
            'post_type' => 'property',
            'meta_query' => array(
                  array(
                    'key' => 'court',
                    'value' => $post->ID,
                    'compare' => 'IN',
                  ),
          ),
                  'orderby' => 'meta_value_num',
                  'order' => 'DESC',
                  'posts_per_page' => -1
          );

标签: phpwordpress

解决方案


推荐阅读