Ordonare wp_query după titlu
Am titluri de postări care încep cu un preț, de exemplu: $199,900 - 123 Strada. Folosesc codul de mai jos și nu reușesc să fac să funcționeze corect ordonarea ascendentă după titlu. Aveți vreo sugestie vă rog?
<?php
// Obține pagina curentă sau setează 1 dacă nu există
$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">Vezi Detalii</a>
<br />
<?php
}
?>
</div>
<?php endwhile; wp_reset_postdata();?>
<?php else : ?>
<h2 class="center">Nu a fost găsit</h2>
<p class="center">Ne pare rău, dar ceea ce cauți nu se află aici.</p>
<?php get_search_form(); ?>
<?php endif; ?>
</div>

Dacă încerci să obții ordonarea după preț crescător, problema este că ordonarea după titlu este o comparație de șiruri de caractere, nu numerică. O soluție ar fi să pui prețul într-un câmp personalizat și să utilizezi orderby
pe acel câmp în loc de titlu. Ai putea adăuga un parametru meta_key
cu numele cheii meta și să utilizezi meta_value_num
pentru ordonare. Consultă WP_Query în Codex pentru mai multe informații.
De asemenea, dacă vrei să returnezi toate articolele (ceea ce presupun că încerci să faci prin setarea unui număr atât de mare), poți seta posts_per_page
la -1
și asta va elimina clauza LIMIT
din interogare.

Mulțumesc mult, Milo! Funcționează minunat! Am văzut utilizarea meta_key și meta_value în timp ce căutam un răspuns, dar nu le-am înțeles niciodată complet și conexiunea lor cu câmpurile personalizate.
