Ich verwende wp_list_categories , um (Sie haben es erraten) eine Liste von Kategorien innerhalb einer benutzerdefinierten Taxonomie zurückzugeben. Der Parameter orderby
akzeptiert das Sortieren nach ID, Name, Slug, Count und term_group. Gibt es eine Möglichkeit, die Ergebnisse benutzerdefiniert zu sortieren? Idealerweise könnte ich eine Reihe von Kategorie-IDs in der gewünschten Reihenfolge übergeben, aber natürlich muss ich etwas tiefer graben, um dies zu sortieren.
In der Tabelle wp_term_relationships befindet sich die nicht verwendete Spalte term_order, mit der Sie den Begriffen in Ihrer Taxonomie eine benutzerdefinierte Reihenfolge zuweisen können. Die Reihenfolge ist standardmäßig auf 0 gesetzt und es wird eine benutzerdefinierte Abfrage benötigt, um die Reihenfolge zurückzugewinnen, und eine andere Lösung, um die Reihenfolge festzulegen.
Beispielabfrage:
function wpse_order_taxes() {
global $wpdb;
$results = $wpdb->get_results ( "SELECT * FROM $wpdb->terms t inner join $wpdb->term_taxonomy tt on t.term_id = tt.term_id WHERE taxonomy = 'category' ORDER BY term_order ASC LIMIT 0, 10" );
$categories = array();
foreach ( $results as $cat ) {
array_Push( $categories, $cat->slug );
}
return $categories;
}
Auf diese Weise erhalten Sie eine Reihe von Begriffen, die in der benutzerdefinierten Reihenfolge sortiert sind.