Ordinare post per nome della tassonomia personalizzata
Una soluzione potrebbe essere:
$terms = get_terms('nome-della-tassonomia');
foreach($terms as $term) {
$posts = get_posts(array(
'post_type' => 'nome-del-tipo-di-post-personalizzato',
'tax_query' => array(
array(
'taxonomy' => 'nome-della-tassonomia',
'field' => 'slug',
'terms' => $term->slug
)
),
'numberposts' => -1
));
foreach($posts as $post) {
// fai quello che vuoi fare con i post qui
}
}

Ottima risposta, anche se dovresti fare attenzione all'indentazione ;)

Hai ragione, in futuro sarò più attento. Ho modificato la risposta sopra

sì, c'è. Cambia la prima riga con- $terms = get_terms('taxonomy-name', array('order' => 'DESC')); Controlla questa pagina del codex per la referenza completa- http://codex.wordpress.org/Function_Reference/get_terms

So che questa è una domanda vecchia che ha già una risposta eccellente, ma oggi ho faticato per ore con qualcosa di molto simile e ho trovato un loop alternativo.
Puoi anche personalizzare un po' la soluzione (eccellente) di Mridul se vuoi farla funzionare sulla pagina archivio per una tassonomia. In altre parole, puoi ordinare un archivio di tassonomia personalizzata per un'altra tassonomia usando questa soluzione.
Condivido questo perché ho passato quattro ore a lottare con questo problema oggi, e se qualcun altro sta cercando di creare archivi di tassonomie personalizzate ordinati per una tassonomia diversa, ecco come puoi farlo. (Inoltre, questa è la mia prima risposta su StackExchange — siate gentili! :) )
Questo inizia esattamente come la soluzione di Mridul. Interroga la tassonomia per cui vuoi ordinare i tuoi post.
$terms = get_terms( array(
'taxonomy' => 'custom_taxonomy_one',
'parent' => 0, // Questo mi ha aiutato a eliminare tassonomie ripetitive; potresti voler saltare questo
) );
foreach($terms as $term) {
echo '<h2>' . $term->name . '</h2>'; // Mostra il nome del termine
Qui è dove diventa un po' diverso dalla risposta di Mridul. Vuoi interrogare due tassonomie e assicurarti che la relazione tra loro sia impostata come "AND", il che significa che i post elencati soddisfano i criteri di essere in entrambe le tassonomie.
In questo caso, i post in "custom_post_type" devono corrispondere allo slug del primo termine e al nome di un altro. Spero che il codice abbia senso per tutti!
$posts = get_posts(array(
'post_type' => 'custom_post_type', // Ottieni i post dal tipo di post personalizzato
'tax_query' => array(
'relation' => 'AND', // i post devono corrispondere a entrambe le tassonomie
array(
'taxonomy' => 'custom_taxonomy_one',
'field' => 'slug',
'terms' => $term->slug // corrisponde allo slug per il termine nell'array precedente
),
array(
'taxonomy' => 'custom_taxonomy_two',
'field' => 'slug',
'terms' => 'custom_taxonomy_two_term_name'
)
),
'numberposts' => -1
));
foreach($posts as $post) {
// Fai quello che devi fare
}
}

Loop alternativo, dove tax = category
e custom post type = "results"
$args = array( 'taxonomy' => 'category' );
$terms = get_terms( 'category', $args);
//INIZIO CICLO FOR EACH
foreach ($terms as $term) {
$post_type = 'results';
$tax = 'category';
$tax_terms = get_terms( $tax );
if ($tax_terms) {
foreach ($tax_terms as $tax_term) {
$args = array(
'post_type' => $post_type,
"$tax" => $tax_term->slug,
'post_status' => 'publish',
'posts_per_page' => -1,
'caller_get_posts'=> 1
);
$my_query = null;
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) : ?>
// WHILE
<?php while ( $my_query->have_posts() ) : $my_query->the_post(); ?>
// Esegui operazioni
<?php endwhile; ?>
// FINE WHILE
<?php else : ?>
<?php endif; wp_reset_query(); ?>
}
// FINE CICLO FOR EACH

"caller_get_posts" è deprecato tra l'altro. Usa "ignore_sticky_posts" Fonte - http://codex.wordpress.org/Class_Reference/WP_Query#Sticky_Post_Parameters
