WP_Query ordinamento per valore numerico dei termini della tassonomia
Ho questa query...
<?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();
?>
Ma i miei custom post-type utilizzano una tassonomia personalizzata con un valore numerico come termine.
La mia domanda è: c'è un modo per ordinare questa query in base al valore del termine?
La tassonomia si chiama 'individual-group'
Qualsiasi aiuto sarebbe enormemente apprezzato, grazie.
Josh

No, non è possibile farlo con le funzionalità predefinite del Core di WordPress. @heathenJesus parla di metadati non di tassonomie. Vedi http://scribu.net/wordpress/sortable-taxonomy-columns.html per una soluzione corretta.
E una spiegazione più approfondita del perché questa funzionalità non è integrata nel Core: Usando wp_query è possibile ordinare per tassonomia?

Ecco la query complessa che ho utilizzato per ordinare numericamente e filtrare la query dei post in base agli slug delle tassonomie.
$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"; // È effettivamente una stringa, quindi * 1 per il valore numerico
$r = $wpdb->get_results($querystr, OBJECT);

Certamente, nel parametro orderby
, esiste un'opzione chiamata meta_value_num
che dovrebbe fare esattamente quello che stai cercando.
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'
));

... purché meta_value sia effettivamente un numero. Ci sono più di un paio di post qui dove le persone cercano di ordinare numericamente cose che non sono numeri :) @heathenJesus, puoi fornire un codice di esempio. Le risposte che contengono solo link sono sconsigliate.

La domanda specificava esplicitamente "tassonomia personalizzata con un valore di termine numerico."
Aggiunta una dimostrazione dell'uso di 'meta_value_num'.

Oh, lo so. Non era in alcun modo una critica alla tua risposta. È solo che, in generale, non mi fido delle persone quando dicono "numerico". A volte intendono cose come "$100" o "123-04". Colloquialmente sono numeri ma non sono numerici per il software. E lavoro con un ufficio pieno di persone così, quindi ho imparato a specificare molto attentamente.

@heathenJesus quindi stai dicendo che posso effettivamente interrogare i termini tassonomici allo stesso modo in cui interrogo i campi personalizzati? Pensavo che le mete key e i termini tassonomici registrati fossero due cose separate... Per esempio, potrei interrogare usando il tuo metodo un termine di categoria tramite 'meta_key'? Non pensavo fosse possibile fare così...
