В идеале, вы бы просто хранили целочисленное (или плавающее) значение, например: 0
, 0
, 22000
, 323000
и т. Д. Это позволит вам добавлять любые символы валюты и форматирование. Вы хотите позже, и это облегчает сортировку и манипулирование.
Итак, прежде всего, вы должны оценить, можете ли вы пройти и сделать это (вероятно, это стоит вашего времени).
За исключением этого, вы можете попробовать использовать meta_value_num
Параметр Orderby :
$args = array(
'post_type' => 'listing',
'post_status' => 'publish',
'posts_per_page' => -1,
'meta_key' => '_listing_price',
'orderby' => 'meta_value_num',
'order' => 'ASC'
);
$listing_query = new WP_Query($args);
Однако я не уверен, что это сработает. Источник показывает, что он добавляет +0
к псевдониму мета-запроса, но в противном случае он не приводится, поэтому я не уверен, как он обрабатывает знаки доллара, запятые и другие символы.
Третий вариант - получить ваши результаты такими, какие вы есть, а затем перебрать их и изменить порядок вручную на основе мета-значения. Для небольшого количества списков это не добавит огромных накладных расходов, но я бы избегал такого подхода в любом масштабе.