webentwicklung-frage-antwort-db.com.de

Wie kann ich die Ergebnisse von wp_list_categories individuell bestellen?

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.

3
Ryan

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.

5
Chris_O