WP_Query - sortare după valoarea numerică a termenului de taxonomie
Am această interogare...
<?php
$press = new WP_Query(array(
'posts_per_page' => -1,
'post_type' => 'individual',
'post_status' => 'private'
));
if ($press->have_posts()) : while ($press->have_posts()) : $press->the_post();
?>
Dar tipurile mele de postări personalizate folosesc o taxonomie personalizată cu o valoare numerică a termenului.
Întrebarea mea este: există vreo modalitate de a ordona această interogare după valoarea termenului?
Taxonomia se numește 'individual-group'
Orice ajutor ar fi foarte apreciat. Mulțumesc.
Josh

Nu, nu există nicio modalitate de a face acest lucru cu WP Core implicit. @heathenJesus vorbește despre metadate, nu despre taxonomii. Consultați http://scribu.net/wordpress/sortable-taxonomy-columns.html pentru o soluție adecvată.
Și o explicație mai detaliată despre motivul pentru care această funcționalitate nu este inclusă în Core: Using wp_query is it possible to orderby taxonomy?

Iată interogarea complexă pe care am folosit-o pentru a sorta numeric și a filtra interogarea de postări după slug-uri de taxonomie.
$my_post_type = 'some_post_type';
$my_term_slug_to_be_used_for_Ordering = 'some_slug';
$my_term_slug_to_be_used_for_Filtering = 'some_other_slug';
$querystr = "
SELECT
$wpdb->posts.*, $wpdb->term_relationships.object_id,
(SELECT wpt.slug
FROM $wpdb->term_taxonomy wptt
INNER JOIN $wpdb->term_relationships wptr ON wptt.term_taxonomy_id = wptr.term_taxonomy_id
INNER JOIN $wpdb->terms wpt ON wpt.term_id = wptt.term_id
WHERE
wptr.object_id = $wpdb->term_relationships.object_id AND
wptt.taxonomy = 'my_term_slug_to_be_used_for_Ordering') AS numeric_column_value
FROM $wpdb->term_taxonomy INNER JOIN $wpdb->term_relationships ON $wpdb->term_taxonomy.term_taxonomy_id = $wpdb->term_relationships.term_taxonomy_id
INNER JOIN $wpdb->posts ON $wpdb->posts.ID = $wpdb->term_relationships.object_id
INNER JOIN $wpdb->terms ON $wpdb->terms.term_id = $wpdb->term_taxonomy.term_id
WHERE
$wpdb->terms.slug = '{$my_term_slug_to_be_used_for_Filtering}' AND
$wpdb->posts.post_type = '$my_post_type' AND $wpdb->posts.post_status = 'publish'
ORDER BY numeric_column_value * 1 DESC"; // De fapt este un șir de caractere, de aceea * 1 pentru conversie numerică
$r = $wpdb->get_results($querystr, OBJECT);

Desigur, în parametrul orderby
, există o opțiune numită meta_value_num
care ar trebui să facă exact ceea ce căutați.
http://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters
$press = new WP_Query(array(
'posts_per_page' => -1,
'post_type' => 'individual',
'post_status' => 'private',
'orderby' => 'meta_value_num',
'meta_key' => 'individual-group'
));

... atâta timp cât meta_value este într-adevăr un număr. Există mai multe postări aici unde oamenii încearcă să sorteze numeric lucruri care nu sunt numere :) @heathenJesus, poți oferi un exemplu de cod. Răspunsurile doar cu linkuri sunt descurajate.

Întrebarea specifica în mod expres "taxonomie personalizată cu o valoare numerică a termenului."
Am adăugat o demonstrație de utilizare a 'meta_value_num'.

Oh, știu. Nu era în niciun fel o critică la adresa răspunsului tău. Doar că, în general, nu am încredere în oameni când spun "numeric". Uneori înseamnă ceva de genul "$100" sau "123-04". Acestea sunt numere în limbajul curent, dar nu sunt numerice pentru software. Și lucrez cu un birou plin de oameni de genul acesta, așa că am învățat să specific foarte atent.

@heathenJesus deci spui că pot interoga termenii de taxonomie la fel cum interoghez câmpurile personalizate? Credeam că metacheile și termenii de taxonomie înregistrați sunt lucruri separate... De exemplu, aș putea interoga folosind metoda ta un termen de categorie prin 'meta_key'? Nu credeam că se poate face asta...
