WordPress Meta_Query: wszystko, co musisz wiedzieć
Opublikowany: 2022-04-30Jednym z najpotężniejszych narzędzi w WordPressie jest możliwość dodawania niestandardowych pól do postów. Wielu programistów używa zaawansowanych pól niestandardowych lub niestandardowych pól meta dla postów.
W tym poście omówimy, jak wyszukiwać posty według pola niestandardowego za pomocą funkcji meta_query w WordPress. Jest to przydatne w przypadku witryn z wieloma niestandardowymi funkcjami.
Zapytanie o posty według wartości meta
Prawdopodobnie najpopularniejszym sposobem wyszukiwania postów za pomocą pola niestandardowego jest kierowanie na jedną konkretną wartość meta. Załóżmy na przykład, że mamy witrynę, w której posty mają niestandardowe pole używane do określenia, czy post jest „polecany”. Jest to powszechne podczas tworzenia polecanej sekcji w witrynie WordPress.
Oczywiście powyższy kod będzie się różnić w zależności od tego, jak zatytułujesz swoje pola i metaklucze, ale „klucz” to nazwa pola niestandardowego, podczas gdy „wartość” jest tym, o co pytamy wpisy. Pole „porównaj” jest używane w szeregu operacji porównawczych, które omówimy w dalszej części wpisu.
Użycie tego w WP_Query pozwoli nam uzyskać tablicę, która jest świetna dla funkcji pętli do wyświetlania postów. W tym poście omówimy tylko funkcje meta_query, a nie sposób wyświetlania danych wyjściowych WP_Query.
Zapytanie o posty według wielu wartości meta
Jeśli chcesz porównać wartość metaklucza z wieloma wartościami, najlepiej użyć operatora „IN”.
Zapytanie o posty za pomocą wielu metakluczy
Teraz, gdy zapytaliśmy posty za pomocą jednego klucza meta, zróbmy jeden z wieloma polami/kluczami, które są odpytywane. Umożliwi to wysyłanie zapytań do postów na podstawie wielu pól niestandardowych. Ten przykład łączy obie rzeczy, które zrobiliśmy powyżej, zagnieżdżając zapytania w tablicy i dodając „relację” do meta_query.
Pole „relacja” można ustawić na „AND” lub „LUB”, dzięki czemu można wymagać spełnienia wszystkich warunków lub tylko jednego.

Operatory porównania metazapytań
Istnieje kilka operatorów, które będą pomocne przy wyszukiwaniu postów za pomocą metazapytań. Oto krótki opis każdego operatora porównania i sposobu, w jaki można ich używać.
- '=' Zapyta metaklucze, które są równe wartości meta
- '!=' Zapytania o klucze meta, które NIE są równe wartości meta
- '>' Zapyta metaklucze, które są większe niż wartość meta
- '>=' Zapyta metaklucze, które są większe niż i równe wartości meta
- '<' Zapyta metaklucze, które są mniejsze niż wartość meta
- '<=' Zapyta w metaklucze, które są mniejsze niż i równe wartości meta
- „LIKE” Zapytania w metaklucze zawierające słowo/frazę (na przykład zapytanie „czerwony” odpowiadałoby wyrażeniom „czerwony”, „wygląd czerwony” i „redstyle”)
- 'NIE PODOBNE' Przeciwieństwo powyższego
- 'IN' Zapyta metaklucze, których wartość istnieje w tablicy
- 'NOT IN' Zapyta metaklucze, których wartość nie istnieje w tablicy
- „BETWEEN” Zapyta w metaklucze, w których wartość znajduje się między dwiema liczbami
- „NOT BETWEEN” Zapyta w metaklucze, w których wartość nie znajduje się między dwiema liczbami
- „ISTNIEJE” Zapyta metaklucze, w których wartość w ogóle istnieje
- „NIE ISTNIEJE” Zapyta w metaklucze, w których wartość w ogóle nie istnieje
- 'REGEXP' Zapyta metaklucze na podstawie wyrażenia regularnego
- „NIE REGEXP” W przeciwieństwie do powyższego REGEXP
Jak sortować posty według pól meta
Oczywiście WordPress pozwala sortować posty za pomocą niestandardowych pól za pomocą opcji „porządkuj według” w WP_Query. Musisz ustawić „orderby” na „meta_value”, a następnie ustawić wartość „meta_key” na nazwę pola. Domyślnie jest to najbardziej przydatne, gdy zapytanie ma być zwracane alfabetycznie lub posortowane według liczby, gdy pole jest liczbą.