$recent2 = new WP_Query(
array(
'orderby' => '',
'showposts'=>-1,
'meta_query' => array(
array(
'key' => 'cena',
'value' => array(2500, 2999), // matches exactly "red"
'compare' => 'BETWEEN'
)));
<?php
// Входящие данные
$values = [2500, '2 999'];
// Очистка от пробелов
$values = array_map(static function($value) {
return preg_replace('/\s/', '', $value);
}, $values);
// Запрос
$recent2 = new WP_Query(
[
'showposts' => 100, // Не используйте -1, используйте достаточно большое для ваших задач число
'meta_query' => [
[
'key' => 'cena', // Не называйте данные транслитом, используйтe price
'value' => $values,
'compare' => 'BETWEEN'
]
]
]
);
array(2500, 2999)
- это массив из нескольких значений, отсюда появился и array_map()
. Если же значение у вас одно, то достаточно одного preg_replace()
:$price = preg_replace('/\s/', '', get_field('cena'));
'meta_query' => [
[
'key' => 'cena',
'value' => preg_replace('/\s/', '', get_field('cena')),
'compare' => 'BETWEEN'
]
]
$recent2 = new WP_Query(
[
'showposts' => 100,
'meta_query' => [
[
'key' => 'cena',
'value' => [2500, 2999],
'compare' => 'BETWEEN',
'type' => 'NUMERIC', // Форсируем приведение данных к числам
]
]
]
);