Czytałam Stephen Harris doskonałą odpowiedź „s do tej kwestii dotyczących stosowania WP_query()
, query_posts()
i pre_get_posts
.
Mówi: „pre_get_posts to filtr służący do zmiany dowolnego zapytania. Najczęściej jest używany do zmiany tylko„ głównego zapytania ”.
Można użyć pre_get_posts
do filtrowania tylko określonego dodatkowego zapytania utworzonego za pomocą WP_Query
? na przykład.
$my_secondary_loop = new WP_Query(...);
if( $my_secondary_loop->have_posts() ):
while( $my_secondary_loop->have_posts() ): $my_secondary_loop->the_post();
//The secondary loop
endwhile;
endif;
wp_reset_postdata();
Każda pomoc bardzo doceniana.
wp-query
pre-get-posts
Ben Pearson
źródło
źródło
Mając to na uwadze, chyba że wykluczysz swój filtr, użyj warunkowego:
is_main_query()
wtedy twój filtr uruchomi się na twoim nowym WP_Query.Jeśli chcesz kierować tylko swoje nowe WP_Query, nie ma na to sposobu.
źródło