Wykonuj zapytania w WordPress za pomocą WP_Query

Opublikowany: 2023-02-12

Baza danych, która zasila Twoją witrynę WordPress, jest pełna cennych informacji. To właśnie umożliwia filtrowanie postów i stron według wielu różnych zmiennych. Jeśli jednak to, co chcesz wyświetlić, nie jest częścią Twojego motywu, istnieją inne sposoby wykorzystania tych danych.

W tym miejscu pojawia się WP_Query. Jest to klasa PHP, która wykorzystuje szeroką gamę parametrów. W związku z tym umożliwia pobieranie danych z bazy danych WordPress do wykorzystania lub wyświetlenia na Twojej stronie internetowej.

W tym artykule przedstawimy głębsze zrozumienie klasy WP_Query i sposobu jej użycia. Przeprowadzimy Cię również przez kilka ważnych kroków, które należy wykonać podczas korzystania z niego. Jeśli jesteś gotowy, zanurkujmy od razu!

Spis treści
1. Co to jest WP_Query?
2. Jak korzystać z WP_Query
2.1. 1. Zacznij od niestandardowej pętli
2.2. 2. Argumenty: podstawa niestandardowych zapytań w WordPress
2.3. 3. Parametry w WP_Query: kategoria, tag i więcej
2.4. 4. Modyfikuj obiekty za pomocą metod i właściwości
3. WP_Query vs. query_posts() w WordPress
4. Dostosuj swoją witrynę WordPress za pomocą WP Engine

Co to jest WP_Query?

Jak wspomnieliśmy, WP_Query to klasa PHP używana przez bazę danych WordPress. Ta konkretna klasa może robić kilka rzeczy, ale przede wszystkim służy do pobierania postów z bazy danych.

Jak sama nazwa wskazuje, tworzy zapytanie w oparciu o kryteria, które dla niego ustawiłeś. Ponieważ istnieje wiele parametrów, których można użyć z WP_Query w WordPress, możesz pobierać i wyświetlać posty na wiele unikalnych sposobów. Bardziej szczegółowo omówimy te opcje w dalszej części tego wpisu.

Jak korzystać z WP_Query

Nawet jeśli dopiero uczysz się różnych aspektów bazy kodu WordPress, WP_Query to dobra klasa na początek. Teraz podzielmy się czterema różnymi sposobami wykorzystania go w swojej witrynie.

1. Zacznij od niestandardowej pętli

Jednym z najlepszych sposobów na poznanie wywołania WP_Query jest pętla WordPress. Jeśli nie wiesz, czym jest pętla, jest to ważna koncepcja do przeczytania.

Pętla jest tym, co wywołuje bazę danych z prośbą o treść postu i wyświetla zwrócone dane. Działa również w oparciu o ustawione parametry, takie jak liczba postów, które ma wyświetlać Twoja witryna na jednej stronie (coś, co możesz skonfigurować w menu Ustawienia > Czytanie ).

Podstawy pętli wyglądają następująco:

<?php
if ( have_posts() ) :
while ( have_posts() ) : the_post();
// Display post content
endwhile;
endif;
?>

To proste stwierdzenie zasadniczo mówi, że jeśli są posty, powinny być wyświetlane. Oczywiście do tego fundamentu można dodać szeroką gamę tagów szablonów, aby stworzyć żądany wyświetlacz.

Możesz także wstawić WP_Query do pętli. Dzięki temu możesz ustawić parametry, które posty zostaną zwrócone. Rozpiszmy, jak by to wyglądało:

<?php

// The Query
$the_query = new WP_Query( $args );

// The Loop
if ( $the_query->have_posts() ) {
echo '<ul>';
while ( $the_query->have_posts() ) {
$the_query->the_post();
echo '<li>' . get_the_title() . '</li>';
}
echo '</ul>';
} else {
// no posts found
}
/* Restore original Post Data */
wp_reset_postdata();

Zobaczysz te same instrukcje if/while z podstawowej pętli, ale istnieje dodatkowy ciąg WP_Query. Jakiekolwiek parametry zostaną tutaj ustawione, określą, jakie posty będą wyświetlane.

Na przykład, jeśli chcesz wykluczyć określonego autora z listy postów, możesz to zrobić w pętli za pomocą WP_Query:

$query = new WP_Query( array( 'author' => -12 ) );

Umieszczając to w Pętli, Twoje wyświetlane posty nie będą już zawierały użytkownika o numerze autora „12”.

Liczba parametrów, których można użyć w tej metodzie, jest prawie nieskończona. Możesz dołączyć informacje o kategoriach, a także zaawansowane taksonomie, aby podać dwa przykłady.

2. Argumenty: podstawa niestandardowych zapytań w WordPress

W poprzednim przykładzie mogłeś zauważyć „($args)” jako część łańcucha. Jest to istotna część zapytania, która odnosi się do zawartych „argumentów”. Informuje bazę danych dokładnie, co należy uwzględnić w zwróconych danych.

Zasadniczo te argumenty można skonfigurować w celu określenia dokładnych wyników, które mają zostać wyświetlone. Argumentów można również używać do zmiany wartości zmiennych. Na przykład, jeśli chcesz zmienić sposób wyświetlania listy kategorii na stronie, możesz użyć argumentu.

Twój argument zdefiniuje tablicę zmiennych i wartości. Więc jeśli chcesz, możesz użyć argumentu, aby zdefiniować tablicę i powiedzieć swojej bazie danych, aby przedstawiała kategorie w porządku malejącym. Ponadto możesz użyć tej samej metody, aby wykluczyć wszystkie kategorie, które nie zawierają postów.

3. Parametry w WP_Query: kategoria, tag i więcej

Do tego momentu wymienialiśmy tylko parametry. W tym momencie przyjrzyjmy się bliżej, co tak naprawdę potrafią. Ich podstawową funkcją jest umożliwienie pobierania niestandardowych kolekcji postów.

Jednym z przykładów parametru, którego można użyć w nagłówku witryny, jest parametr Category. Możesz użyć tego do określenia określonych kategorii do wyświetlenia. Odbywa się to poprzez podanie odpowiedniego numeru kategorii lub ślimaka.

Dodatkowo możesz zrobić to samo z parametrem Tag. Oczywiście parametry Category i Tag to tak naprawdę tylko wierzchołek góry lodowej, jeśli chodzi o używanie WP_Query.

4. Modyfikuj obiekty za pomocą metod i właściwości

Chociaż nie zaleca się bezpośredniej zmiany właściwości klasy, takiej jak WP_Query, możesz wchodzić z nimi w interakcje za pomocą metod. Zasadniczo metody są jak funkcje, podczas gdy właściwości są odpowiednikami zmiennych.

WP_Query ma wiele właściwości. Obejmują one zarówno proste właściwości „$posts”, jak i bardziej skomplikowane. Niezależnie od metody interakcji z nimi, dane zostaną zwrócone na podstawie parametrów, które zdecydujesz się wprowadzić.

WP_Query vs. query_posts() w WordPress

Warto zauważyć, że istnieje inny sposób modyfikacji głównego zapytania na Twojej stronie. To jest funkcja query_posts(). Chociaż może to działać podobnie do WP_Query, może być również bardzo problematyczne.

WordPress Code Reference nawet zdecydowanie zaleca, aby nie używać tej funkcji w głównej pętli witryny. Najlepiej też unikać go we wtyczkach i motywach. Dzieje się tak, ponieważ całkowicie zastąpi twoje główne zapytanie.

Preferowana jest klasa WP_Query, ponieważ po uruchomieniu zapytania można również „zresetować” główną pętlę. Ponieważ WP_Query umożliwia uruchamianie wielu zapytań w pętli, będziesz chciał również zrozumieć, jak zaimplementować funkcję wp_reset_postdata.

Jeśli osadziłeś dodatkową pętlę w głównej pętli WordPress, funkcja resetowania zostanie umieszczona na końcu i będzie wyglądać tak:

<?php wp_reset_postdata(); ?>

Spowoduje to przywrócenie domyślnych tagów szablonów i powrót do stanu sprzed zainicjowania pętli dodatkowej.

Dostosuj swoją witrynę WordPress za pomocą WP Engine

Możliwość dostosowania sposobu wyświetlania elementów w Twojej witrynie to tylko jedna z zalet korzystania z WordPress. Zrozumienie WP_Query i wykorzystanie narzędzi dostępnych na stronie zasobów dla programistów może pomóc w tworzeniu naprawdę dostosowanych stron internetowych.

W WP Engine jesteśmy pasjonatami upewnienia się, że masz zasoby potrzebne do tworzenia angażujących stron internetowych. Sprawdź nasze rozwiązania WordPress i plany hostingowe już dziś!