WordPress Meta Query для двух пользовательских полей. - PullRequest
0 голосов
/ 27 июня 2018

У меня есть пользовательский тип сообщения с именем носителя, в котором есть два пользовательских поля, такие как age_min и age_max допустим, значение age_min равно 25, значение age_max равно 90, и оно отличается для каждого сообщения.

Теперь на переднем крае есть одно поле для ввода для поиска. когда пользователь набирает 65 и выполняет поиск, то это число 65 следует искать в этом диапазоне 25-90 (различаются для каждого сообщения)

вот мой код:

array
(
    'key'       => 'age_min',
    'value'     => $_POST['age'],
    'type'      => 'NUMERIC',
    'compare'   => '>='
),
array
(
    'key'       => 'age_max',
    'value'     => 90,
    'type'      => 'NUMERIC',
    'compare'   => '<='
)

1 Ответ

0 голосов
/ 28 июня 2018

Я думаю, что ваши операторы работают неправильно. Их следует читать как:

КЛЮЧ ОПЕРАТОРА

Логика должна быть:

(age_min <= возраст) AND (age_max> = возраст)

Например:

(25 <= 65) И (90> = 65)

Запрос будет выглядеть так:

$args = array(
    'post_type'  => 'carrier',
    'meta_query' => array(
        'relation' => 'OR',
        array(
            'key'     => 'age_min',
            'value'   => $_POST['age'],
            'compare'   => '<=',
        ),
        array(
            'key'     => 'age_max',
            'value'   => $_POST['age'],
            'compare' => '>=',
        ),
    ),
);
$query = new WP_Query( $args );

Надеюсь, это поможет!

...