webentwicklung-frage-antwort-db.com.de

Ist es möglich, den Beitrag nach einem benutzerdefinierten Feld zu sortieren?

Ich habe ein benutzerdefiniertes Feld mit dem Namen "Wert_Datum", in dem ein Datum hinzugefügt wird, z. B. JJJJ/MM/TT

Die Idee ist, die bevorstehenden Termine zuerst in der Schleife zu sortieren, ist das möglich?

Ich habe eine Vorlage für die benutzerdefinierte post taxonomy-event-date.php verwendet und dies ist Code in der Funktion. Es funktioniert nicht.

Functions.php

add_action('pre_get_posts','search_filter');
function search_filter($query){
    if ( !is_admin() && $query->
is_tax( 'event', 'date' ) ) {
        $today = date( 'Y-m-d' );
        $query->set('post_status', 'publish');
        $query->set('meta_value', $today);
        $query->set('meta_key', 'value_date');
        $query->set('orderby', 'meta_value_num');
        $query->set('order', 'ASC');
    }
}
1
Max

Ja, Sie können die Aktion "pre_get_posts" aufrufen.

add_action('pre_get_posts','search_filter');

Sie können Parameter hinzufügen:

$args = array(
  'post_status'       => 'publish',
  'posts_per_page'    => 6,
  'paged'             => $paged,
  'meta_key'          => 'event_date',
  'orderby'           => 'meta_value_num',
  'order'             => 'ASC'
);

Sie können den obigen Parameter verwenden, z. :

function search_filter($query){
    if ( !is_admin() && $query->is_main_query() ) {
        $query->set('post_status', 'publish');
        $query->set('meta_key', 'event_date');
        $query->set('orderby', 'meta_value_num');
        $query->set('order', 'ASC');
    }
}
1
Punit Patel