Efectuați interogări în WordPress cu WP_Query
Publicat: 2023-02-12Baza de date care alimentează site-ul dvs. WordPress este plină de informații valoroase. Acesta este ceea ce face posibilă filtrarea postărilor și paginilor dvs. după multe variabile diferite. Dacă ceea ce doriți să afișați nu face parte din tema dvs., totuși, există și alte moduri de a utiliza acele date.
Aici intervine WP_Query. Aceasta este o clasă PHP care utilizează o mare varietate de parametri. În consecință, vă permite să extrageți date din baza de date WordPress pentru utilizare sau afișare pe site-ul dvs. web.
În acest articol, vom oferi o înțelegere mai profundă a clasei WP_Query și a modului în care poate fi utilizată. De asemenea, vă vom ghida prin câțiva pași importanți de urmat atunci când îl utilizați. Dacă sunteți gata, să ne scufundăm imediat!
Ce este WP_Query?
După cum am menționat, WP_Query este o clasă PHP folosită de baza de date WordPress. Această clasă specială poate face mai multe lucruri, dar în primul rând este folosită pentru a extrage postări din baza de date.
După cum indică numele, face o interogare pe baza criteriilor pe care le-ați setat. Deoarece există o mulțime de parametri pe care îi puteți folosi cu WP_Query în WordPress, puteți extrage și afișa postări într-o serie de moduri unice. Vom explora aceste opțiuni în detaliu mai târziu în această postare.
Cum se utilizează WP_Query
Chiar dacă tocmai înveți diferitele aspecte ale bazei de coduri WordPress, WP_Query este o clasă bună pentru a începe. Acum, haideți să dezvăluim patru moduri diferite în care îl puteți utiliza pe site-ul dvs. web.
1. Începeți cu o buclă personalizată
Una dintre cele mai bune modalități de a cunoaște apelul WP_Query este prin bucla WordPress. Dacă nu sunteți familiarizat cu ce este Bucla, este un concept important pe care trebuie să citiți.
Bucla este ceea ce apelează la baza de date solicitând conținutul postării și afișează datele care sunt returnate. De asemenea, funcționează pe baza unor parametri stabiliți, cum ar fi câte postări doriți să afișați site-ul dvs. pe o singură pagină (ceva pe care îl puteți configura în meniul Setări > Citire ).
Elementele de bază ale Buclei arată astfel:
<?php
if ( have_posts() ) :
while ( have_posts() ) : the_post();
// Display post content
endwhile;
endif;
?>
Această afirmație simplă spune în esență că, dacă există postări, acestea ar trebui să fie afișate. Desigur, puteți adăuga o mare varietate de etichete șablon la această fundație, pentru a crea afișajul dorit.
De asemenea, puteți insera WP_Query în buclă. Acest lucru vă permite să plasați parametri pentru ce postări vor fi returnate. Să dezvăluim cum ar arăta:
<?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();
Veți vedea aceleași instrucțiuni if/while din bucla de bază, dar există un șir WP_Query suplimentar. Indiferent de parametrii setați aici, va determina ce postări vor fi afișate.
De exemplu, dacă doriți să excludeți un anumit autor dintr-o listă de postări, puteți face asta în bucla cu WP_Query:
$query = new WP_Query( array( 'author' => -12 ) );
Plasând acest lucru în buclă, postările afișate nu vor mai include utilizatorul cu numărul de autor „12”.
Numărul de parametri pe care îi puteți utiliza cu această metodă este aproape nesfârșit. Puteți include informații despre categorii, precum și taxonomii avansate, doar pentru a da două exemple.
2. Argumente: coloana vertebrală a interogărilor personalizate în WordPress
În exemplul anterior, este posibil să fi observat „($args)” ca parte a șirului. Aceasta este o parte vitală a interogării care se referă la „argumentele” incluse. Spune bazei de date exact ce să includă în datele returnate.
În esență, aceste argumente pot fi setate pentru a determina rezultatele exacte pe care doriți să le afișați. Argumentele pot fi folosite și pentru a modifica valoarea variabilelor. De exemplu, dacă doriți să schimbați modul în care lista dvs. de categorii apare pe pagină, puteți utiliza un argument.
Argumentul dvs. va defini o serie de variabile și valori. Deci, dacă doriți, puteți utiliza un argument pentru a defini o matrice și a spune bazei de date să prezinte categoriile în ordine descrescătoare. În plus, puteți folosi aceeași metodă pentru a exclude orice categorii care nu conțin postări.
3. Parametrii din WP_Query: Categorie, Tag și altele
Până în acest moment, am menționat doar parametrii în treacăt. În acest moment, să ne uităm mai atent la ceea ce pot face de fapt. Funcția lor principală este de a vă permite să extrageți colecții de postări personalizate.
Un exemplu de parametru care poate fi folosit în antetul site-ului dvs. este parametrul Categorie. Puteți utiliza aceasta pentru a specifica categorii specifice pentru afișare. Acest lucru se realizează prin furnizarea numărului de categorie relevantă sau slug-ului.
În plus, puteți face același lucru cu parametrul Tag. Desigur, parametrii Category și Tag sunt de fapt doar vârful aisbergului atunci când vine vorba de utilizarea WP_Query.
4. Modificați obiecte cu metode și proprietăți
Deși nu este recomandat să modificați direct proprietățile unei clase precum WP_Query, puteți interacționa cu ele folosind metode. În esență, metodele sunt ca funcțiile, în timp ce proprietățile sunt echivalentul variabilelor.
WP_Query are multe proprietăți. Acestea variază de la proprietăți simple „$posts” la unele mai complicate. Indiferent de metoda folosită pentru a interacționa cu ei, datele vor fi returnate pe baza parametrilor pe care alegeți să îi puneți.
WP_Query vs. query_posts() în WordPress
Este demn de remarcat că există o altă modalitate de a modifica interogarea principală de pe pagina dvs. Aceasta este funcția query_posts(). Deși acest lucru poate funcționa într-un mod similar cu WP_Query, poate fi, de asemenea, foarte problematic.
Referința codului WordPress vă sfătuiește chiar să nu utilizați această funcție în bucla principală a site-ului dvs. web. De asemenea, cel mai bine este să-l evitați în pluginuri și teme. Acest lucru se datorează faptului că va suprascrie complet interogarea dvs. principală.
Este preferată clasa WP_Query, deoarece puteți, de asemenea, să „resetați” bucla principală după ce executați o interogare. Deoarece WP_Query vă permite să rulați mai multe interogări într-o buclă, veți dori să înțelegeți cum să implementați și funcția wp_reset_postdata.
Dacă ați încorporat o buclă secundară în bucla principală WordPress, funcția de resetare va fi plasată la sfârșit și va arăta astfel:
<?php wp_reset_postdata(); ?>
Aceasta va restabili etichetele de șablon implicite și veți reveni la cum erau lucrurile înainte de inițierea buclei secundare.
Personalizați-vă site-ul WordPress cu WP Engine
Posibilitatea de a face ajustări la modul în care sunt afișate articolele pe site-ul dvs. web este doar unul dintre beneficiile utilizării WordPress. Înțelegerea WP_Query și utilizarea instrumentelor furnizate pe pagina de resurse pentru dezvoltatori vă pot ajuta să construiți site-uri web cu adevărat personalizate.
Aici, la WP Engine, suntem pasionați să ne asigurăm că aveți resursele de care aveți nevoie pentru a construi site-uri web captivante. Consultați soluțiile noastre WordPress și planurile de găzduire astăzi!