Pentru fiecare pagină, motorul WordPress generează o interogare de bază de date pentru a prelua înregistrările pe baza parametrilor cererii GET. Parametrii de solicitare post sunt setați în obiectul global $ wp_query. Dacă este necesar, puteți modifica această interogare de bază sau puteți crea un obiect de interogare nou în baza de date - WP_Query.
Interogarea SQL a obiectului WP_Query este stocată în proprietatea cererii:
Schimbarea interogării de bază
Obțineți parametri de solicitare
Folosind WP_Query pentru a prelua înregistrările
O dată voi da un exemplu de ciclu complet de încheiere a înregistrărilor / posturilor:
remarcă
Funcția wp_reset_postdata () restabilește variabila globală $ post de la obiectul global $ wp_query:
Apoi, vom examina mai detaliat detaliile fiecărei etape și posibilități suplimentare.
Metode de obținere a înregistrărilor
Obținerea unei intrări / postări prin id sau slug:
remarcă
Funcția get_post () este un wrapper peste WP_Post. este nevoie de parametrii suplimentari $ output și $ filter:
Generați o interogare nouă pentru a prelua intrări / postări WP_Query:
remarcă
Înregistrați filtre
Filtrele de bază și parametrii de interogare
remarcă
pagina (număr) - Număr pentru pagina de pornire statică. Afișează intrările care ar fi trebuit să fie afișate în mod normal pe pagina de paginare X a primei pagini.
remarcă
Notă privind tipurile de postări:
Filtru pe arbore (ierarhie)
remarcă
Filtrați după etichete (etichete)
meta_query - filtra pentru meta date
Parametrul meta_query reprezintă o serie de parametri imbriciți pentru filtrarea înregistrărilor / postărilor din meta date.
tax_query - filtrarea după taxonomie
Exemple de interogări
Obțineți paginile copil pentru pagina curentă:
Numărul total de postări disponibile:
Adăugați filtrul de interogări "postări numai cu imagini":
Rezultatul înregistrărilor
Bucle de înregistrare
remarcă
Utilizați wp_reset_postdata () pentru a "reseta" valoarea variabilei globale $ post la starea interogării principale, după terminarea tuturor ciclurilor de accesare cu crawlere! Deoarece fiecare the_post () înlocuiește variabilele globale, puteți observa că pe pagina de înregistrare, de exemplu, variabila post $ nu conține postul principal, ci un altul. Care ar putea fi ultimul post dintr-un anumit ciclu.
Câmpuri suplimentare / meta
Obțineți câmpurile meta:
Obțineți un link către imaginea postului principal:
WP_Query: query_vars
Obțineți obiectul (post sau taxonomia) interogării pentru ruta curentă / CNC:
Obțineți parametri de interogare pentru pagina curentă:
Obțineți parametrul solicitării WP_Query pentru pagina curentă (postarea sau înregistrările secțiunii):
setup_postdata ($ post)
Preia datele postare și generează variabile postale globale. Utilizează variabila $ post postată și obiectul global de interogare $ wp_query. Sunt create următoarele variabile globale: $ id, $ authordata, $ currentday, $ currentmonth, $ page, $ pages, $ multipage, $ more, $ numpages.
Funcția funcționează numai dacă îi transmiteți un obiect global al postului numit $ post. Dacă aveți un obiect post într-o altă variabilă - setați $ post = $ myWpPost, apoi treceți $ post la această funcție. Nu înțeleg cu adevărat cum funcționează această funcție dacă îmi trimit un ID post în loc de $ post.
$ query_vars - argumente de interogare
Obținerea câmpurilor postare individuale (post_type, post_title, post_status, post_content ..):
#worspress, #search, #filter