Erhalte Beiträge für einzelne Beiträge

Ich erhalte Beiträge für eine Veranstaltungsarchivseite: http://www.netzwerk-leipziger-freiheit.de/veranstaltungen/

function my_pre_get_posts( $query ) { // do not modify queries in the admin if( is_admin() ){ return $query; } // only modify queries for 'event' post type if( isset($query->query_vars['post_type']) && $query->query_vars['post_type'] == 'events' ) { $query->set('orderby', 'meta_value_num'); $query->set('meta_key', 'vdatum'); $query->set('order', 'ASC'); } // return return $query; } add_action('pre_get_posts', 'my_pre_get_posts'); 

Dies funktioniert alles, aber wenn Sie ein einzelnes Ereignis auswählen, hängt die Reihenfolge nicht von der Pre-get-Post-Abfrage ab. Und wenn Sie bei einem Ereignis zum letzten Ereignis auf der linken Schaltfläche gehen, endet es in einem 404.

Ich werde mich für jede mögliche Lösung freuen.

Solutions Collecting From Web of "Erhalte Beiträge für einzelne Beiträge"

Zuerst wird das $query Objekt als Referenz übergeben, Sie müssen $query in pre_get_posts .

Zweitens is_post_type_archive( 'events' ) , Sie müssen query->query_vars[] .

Der korrigierte Code sieht folgendermaßen aus:

 function my_pre_get_posts( $query ) { if( ! is_admin() && is_main_query() && is_post_type_archive( 'events' ) ) { $query->set('orderby', 'meta_value_num'); $query->set('meta_key', 'vdatum'); $query->set('order', 'ASC'); } } add_action('pre_get_posts', 'my_pre_get_posts'); 

Drittens wird diese Aktion in Ihrem Fall wahrscheinlich nicht funktionieren, da Sie die Links zu den vorherigen und nächsten Posts anders ausgeben. In pre_get_posts Sie neue Argumente für die Haupt- WP_Query , aber es funktioniert nicht für andere functionen wie get_next_post() , get_previous_post() , get_adjacent_post() .

Diese functionen verwenden jedoch den Filter get_{$adjacent}_post_sort mit dem Standardwert "ORDER BY p.post_date $order LIMIT 1" . Sie können versuchen, diesen Filter in Kombination mit get_{$adjacent}_post_join zu verwenden, um Ihre Meta-Abfrage hinzuzufügen.

Siehe “Filter” auf dieser Seite .