Ich habe ein Problem, das ich gerade versuche zu lösen und ein Problem zu finden, einen Weg zu finden, es richtig zu machen.Wordpress Sortierung nach Metawerten
Ich habe eine College-Vortragsreihe, die ich sortieren muss Ich kann es durch ein Meta-Feld für Jahr einfach gut sortieren. Aber wenn ich sortiere nach Semester sortiere es in alphabetischer Reihenfolge und so endet es sortiert nach Winter, Frühling, Herbst oder Herbst, Frühling, Winter je nachdem, ob ich es ASC oder DESC sage.
ich brauche, um herauszufinden, wie um diese vorzugsweise in der richtigen Reihenfolge zu tun, ohne ein weiteres Feld an den Pfosten für die Sortpriorität Hinzufügen
Abfrage args zur Zeit wie folgt geschrieben, das offensichtlich ein bisschen chaotisch ist.
$args = array(
'post_type' => 'mcm_geri-ed',
'posts_per_page' => $posts_per_page,
'meta_query' => array(
'semester' => array(
'key' => 'semester',
),
'year' => array(
'key' => 'year'
)
),
'orderby' => array(
'year' => 'DESC',
'semester' => array(
'value' => 'date'
)
),
'paged' => $paged
);
Ich würde das auch empfehlen - oder sie alle auswählen und die Sortierung manuell durchführen, wenn es nicht zu viele gibt. Es sollte jedoch möglich sein, mit WP_Query zu arbeiten. – Mikk3lRo
Ich stimme dem Prinzip zu, aber ich würde vorzugsweise 'FIND_IN_SET (meta_semester,' Fall, Spring, Winter ') ASC' verwenden. FIND_IN_SET gibt die Position des ersten Arguments in der zweiten durch Kommas getrennten Zeichenfolge zurück, so dass sie nur in der gewünschten Reihenfolge in dort aufgeführt werden müssen. – CBroe
Ich nehme meinen Kommentar über die Möglichkeit mit WP_Query zurück, nachdem ich eine Stunde lang versucht habe. Sie können [die Fähigkeit hinzufügen] (https://gist.github.com/mikeschinkel/6402058) jedoch. Und es ist ziemlich einfach, den 'posts_orderby'-Hook zu verwenden, wie von janh vorgeschlagen. – Mikk3lRo