Szybki podział
- query_posts - nie używaj, z wyjątkiem rzadkich przypadków krawędzi
- pre_get_posts - użyj, jeśli chcesz zmienić domyślne zapytanie na stronie
- nowy WP_Query - służy do uzyskiwania innych wyników od głównego zapytania
- get_posts - to samo co WP_Query, po prostu zwraca wyniki w formacie tablicowym
zapytanie_posts
Korzystanie z query_posts nie jest już zalecane. Są lepsze sposoby na osiągnięcie tego, co próbujesz osiągnąć. Próbujesz zmienić główne zapytanie? Użyj akcji pre_get_posts, aby przefiltrować wyniki (patrz poniżej). query_posts rzuca na bok oryginalne zapytanie główne (po jego uruchomieniu) i tworzy nowe zapytanie główne. Zastępuje wszystkie zmienne globalne powiązane z postem i powoduje zupełnie nowe wywołanie bazy danych. Po prostu nie ma powodu, aby nie zmieniać istniejącego zapytania. Jestem pewien, że istnieją pewne skrajne przypadki, w których należy go użyć, ale nie mogę wymyślić żadnego z głowy. Skorzystaj z jednej z poniższych opcji, ponieważ będą one prawdopodobnie bardziej odpowiednie.
pre_get_posts
To jest filtr. To modyfikuje główne zapytanie do strony. Na przykład chcemy zmienić liczbę wyników zwracanych na stronie głównej…
funkcja tj_change_home_number ($ query) {if (is_home ()) {$ query-> set ('posts_per_page', 2); powrót; }} add_action ('pre_get_posts', 'tj_change_home_number');
Spowodowałoby to zmianę głównego zapytania, tak aby zwracało tylko 2 posty na stronie głównej.
WP_Query
Głównym zapytaniem dla dowolnego wywoływanego szablonu jest instancja WP_Query . Gdy wchodzisz w interakcję z globalnymi zmiennymi wpisu w szablonie, jest to wynik WP_Query . Przypadki użycia tego są liczne, ale podobnie jak w przypadku get_posts, zadeklarowałbym nowy WP_Query w celu ściągania powiązanych postów, coś w tym stylu. Pamiętaj, że jeśli uruchomisz funkcję the_post () podczas zapętlania nowego WP_Query, uruchom funkcję wp_reset_postdata () po zakończeniu zapętlania, aby zresetować globalne dane postu do pierwotnego zapytania głównego.
get_posts
Korzystając z get_posts, wywołujesz nową WP_Query i zwracasz te informacje w formacie tablicowym. Zazwyczaj używam get_posts, gdy zwracam posty dla suwaka na stronie głównej lub dzwonię do niektórych powiązanych postów na pasku bocznym. Z WP_Query można równie łatwo korzystać, ale jest to dobry sposób na otrzymywanie tablicy postów bez modyfikacji globalnych zmiennych postów. Moim zdaniem jest to najbardziej uproszczony i najłatwiejszy w użyciu. Po zwróceniu danych nie są potrzebne żadne wywołania funkcji, wystarczy zapętlić tablicę.
Może to być trochę mylące, więc zadawaj pytania w komentarzach poniżej.
Odniesienie:
WP_Query
pre_get_posts
zapytanie_posts
get_posts