WP_Query je PHP třída v WordPress, který načte obsah z databáze. Vývojáři spoléhají na WP_Query při vytváření vlastních seznamů obsahu, které se zobrazují na front-endu webu.
abychom pochopili, jak WP_Query funguje, podívejme se na příklad. Tady je stránka, která se zobrazí tři „povýšen“ zájezdy:
musíte použít WP_Query k načtení těchto turné příspěvky z databáze. Ukážeme, jak vytvořit tento seznam dvěma způsoby:
- Pomocí WP_Query přes PHP kód (vyžaduje programování)
- Pomocí WP_Query pomocí Nástrojů GUI (žádné programování potřeba)
Pomocí WP_Query s PHP code
kód níže je dotaz součástí. Zde WP_Query načte tři náhodné „prohlídky“ z databáze, které odpovídají kritériím.
nejprve kód vytvoří pole argumentů ($args), které obsahuje všechny podrobnosti dotazu, který potřebujeme spustit. Poté zavoláme třídu WP_Query a požádáme ji, aby vrátila položky (prohlídky), které odpovídají argumentům.
function display_promoted_tours(){ // Create an array of arguments, which will tell WP_Query what information to load from the database $args = array( 'post_type' => 'tours', 'post_status' => 'publish', 'limit' => 3, 'orderby' => 'rand', 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'tour-status', 'field' => 'slug', 'terms' => array( 'promoted' ), 'operator' => 'IN' ) ), 'meta_query' = array( 'relation' => 'AND', array( 'key' => 'wpcf-valid-until', 'value' => strtotime( 'today 00:00' ), 'type' => 'NUMERIC', 'compare' = '>' ) ) ); // Call WP_Query and load the content from the database $my_query = new WP_Query( $args ); // Now display the "tours" if ( $my_query->have_posts() ) : while ( $my_query->have_posts() ) : $my_query->the_post(); echo "<div class='card'>"; if ( has_post_thumbnail() ) : echo "<a href='" . get_the_permalink() . "' title='" . the_title(null,null,false) . "'>" . get_the_post_thumbnail() . "</a>"; endif; echo the_title( '<h3>', '</h3>', false); echo "<button class='button-style'><a href='" . get_the_permalink() . "'>Learn more</button>"; echo "</div>"; endwhile; wp_reset_postdata(); endif;}
Nyní máte kód, který načte obsah z databáze a zobrazí jej na front-endu. Posledním krokem je přidání tohoto kódu do jedné ze šablon motivu, aby se spustil na stránce, kde se má zobrazit.
K tomu, budete muset následovat tyto kroky:
- Vytvořit child theme, tak, že nemusíte přímo upravovat soubory motivu (což budoucí aktualizaci problémy)
- Zkopírujte téma stránek.php šablony a přejmenujte ji
- Upravte nový soubor šablony a volání display_promoted_tours z
- Z WordPress admin, upravit stránku, která by měla ukázat, tento seznam zájezdů a nastavte ji používat nové šablony
Tento proces funguje, ale jak můžete vidět, to vyžaduje notnou dávku kódování a ladění. Pokud vás zajímá verze tohoto procesu bez PHP, což trvá minuty místo dnů, pokračovat ve čtení.
Vytvořte dotaz pomocí GUI sady nástrojů
Použijme stejný příklad cestovních webových stránek jako výše a vytvořte dotaz pomocí sady nástrojů místo kódování PHP.
níže je stejný příklad jako výše, ale tentokrát bez použití kódování-jen sada nástrojů.
- Vložit Názory editor bloku, kde chcete, seznam se objeví
- Zvolte, jaký obsah chcete načíst
- Navrhnout, jak bude seznam vypadat
V tomto příkladu zobrazuje výsledky dotazu jako mřížka. Vaše názory mohou zobrazovat výsledky jakýmkoli způsobem, dokonce i jako značky na mapách.
přidání stránkování do dotazů
Chcete-li vytvořit dlouhý seznam obsahu, můžete jej rozdělit přidáním stránkování.
zobrazit výsledky na stránkách, namísto jednoho dlouhého seznamu, budete muset:
- Povolit stránkování pro Zobrazení
- Design ovládací prvky pro stránkování
Vytvoření vlastní vyhledávání
Kromě toho, že zobrazuje výsledky jako seznam, můžete také použít dotazy vybudovat vlastní vyhledávání. Vlastní vyhledávání přidává ovládací prvky front-end, které umožňují uživatelům filtrovat výsledky a najít přesný obsah, který hledají.
Zobrazení výsledků dotazu na mapě
Pokud vaše příspěvky mají vlastní Adresu pole, můžete zobrazit je na mapě.
Omezení a filtrování dotazů
dotazy, které budete stavět nemusíte načíst z databáze všechny položky typu, který jste vybrali. Můžete omezit a filtrovat dotazy a vrátit přesné výsledky, které chcete získat.
můžete například vytvářet dotazy, které:
- Návrat prvních několika výsledky
- Filtrovat výsledky podle hodnot vlastních polí a taxonomie
- Filtrovat výsledky podle post vztah
- Filtrovat výsledky podle vstupů na front-end (vytvořit vlastní vyhledávání)