Сортировка wp_query по заголовку
У меня есть заголовки записей, которые начинаются с цены, например: $199,900 - 123 Street. Я использую код ниже, но сортировка по заголовку в порядке возрастания не работает должным образом. Пожалуйста, подскажите решение.
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
'cat' =>21,
'posts_per_page' => 999999,
'paged' => $paged,
'orderby' => 'title',
'order' => 'ASC',
);
$the_query = new WP_Query($args);
?>
<div id="listings">
<?php if ($the_query->have_posts()) : ?>
<?php while ($the_query->have_posts()): $the_query->the_post(); ?>
<div <?php post_class() ?> id="post-<?php the_ID(); ?>">
<div class="title1 active_listing">
<?php
if (in_category('6')) {
the_title();
} else {
?>
<a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a>
<?php
}
?>
</div>
<div class="alignleft thumb"><?php the_post_thumbnail('thumbnail'); ?>
<br />
</div>
<div class="content"><?php the_excerpt(); ?> </div>
<?php
if (in_category('6')) {
?>
<br />
<?php
} else {
?>
<a href="<?php the_permalink() ?>" rel="bookmark">Посмотреть детали</a>
<br />
<?php
}
?>
</div>
<?php endwhile; wp_reset_postdata();?>
<?php else : ?>
<h2 class="center">Не найдено</h2>
<p class="center">Извините, но то, что вы ищете, здесь отсутствует.</p>
<?php get_search_form(); ?>
<?php endif; ?>
</div>

Если вы пытаетесь отсортировать записи по возрастанию цены, проблема в том, что сортировка по заголовку — это строковое сравнение, а не числовое. Решение — поместить цену в произвольное поле и сортировать по нему, а не по заголовку. Вам нужно добавить параметр meta_key
с именем вашего мета-ключа и указать meta_value_num
для сортировки. Подробнее см. в WP_Query в Codex.
Также, если вы хотите получить все записи (предполагаю, что именно это вы пытаетесь сделать, указывая такое большое число), вы можете установить posts_per_page
в значение -1
, и это уберёт условие LIMIT
из запроса.

Огромное спасибо, Мило! Работает прекрасно! Я видел использование meta_key и meta_value, когда искал ответ, но так до конца и не понял их полностью и их связь с произвольными полями.
