WP_Query Argumente Autor, Căutare, Parolă & Permisiuni

Până acum, în această serie, ați aflat despre o serie de argumente pe care le puteți utiliza cu WP_Query pentru a selecta postările după tipul, categoria, eticheta, metadatele, data, starea și multe altele.

În acest tutorial final pe WP_Query argumente, voi rula prin intermediul unor parametri mai puțin frecvent utilizate, care pot oferi întrebări dvs. chiar mai multă flexibilitate.

Parametrii pe care îi vom acoperi aici sunt pentru:

  • autor
  • căutare
  • parola
  • permisiuni
  • cache
  • câmpurile de returnare

Înainte de a începe, să vedem o recapitulare rapidă a modului în care codificați argumentele dvs. WP_Query.

O recapitulare a modului în care argumentele funcționează în WP_Query

Când codificați WP_Query în temele sau pluginurile dvs., trebuie să includeți patru elemente principale:

  • argumentele pentru interogare, utilizând parametrii care vor fi abordați în acest tutorial
  • interogarea însăși
  • bucla
  • terminați: închiderea dacă și în timp ce etichetele și resetarea datelor postale

În practică, acest lucru va arăta mai degrabă după cum urmează:

have_posts ()) // Începeți cu buclă peste rezultatele interogării. în timp ce ($ query-> have_posts ()) $ query-> the_post (); // Conținutul rezultatelor mesajelor interogate merge aici.  // Restaurați datele postale originale. wp_reset_postdata (); ?>

Argumentele sunt ceea ce spune WordPress ce date să aducă din baza de date și sunt cele pe care le voi acoperi aici. Deci, tot ce ne concentrăm aici este prima parte a codului:

$ args = array (// Argumente pentru interogarea dvs.);

După cum puteți vedea, argumentele sunt conținute într-o matrice. Veți învăța cum să le codificați pe măsură ce lucrați prin acest tutorial.

Codificarea argumentelor dvs.

Există o modalitate specifică de a codifica argumentele în matrice, care este după cum urmează:

$ args = array ('parameter1' => 'valoare', 'parameter2' => 'valoare', 'parameter3' => 'valoare');

Trebuie să închideți parametrii și valorile lor în ghilimele simple, utilizați => între ele, și le separați cu o virgulă. Dacă obțineți acest lucru greșit, WordPress nu poate adăuga toate argumentele dvs. la interogare sau puteți obține un ecran alb.

Parametrii autorului

Există patru parametri pe care le puteți utiliza pentru interogarea după autor:

  • autor (int): utilizați ID autor
  • numele autorului (şir): folosiți 'user_nicename' (NU nume)
  • author__in (mulțime): utilizați ID autor
  • author__not_in (mulțime)

Primul, autor, vă permite să interogați mesajele de la unul sau mai mulți autori, furnizând codul autorului:

$ args = array ('autor' => '2');

Codul de mai sus interoghează toate postările autorului al cărui cod este 2.

De asemenea, puteți utiliza un șir pentru a interoga mesaje de la mai mulți autori:

$ args = array ('autor' => '1, 2');

Dacă doriți să interogați după nume, ați folosi numele autorului parametru:

$ args = array ('numele autorului' => 'rachelmccollin'); 

Acest parametru ia valoarea din user_nicename câmp în baza de date ca argument, care este afișat ca porecla în ecranul Administratori utilizatori:

Rețineți că, deoarece acesta poate fi editabil de utilizatori, veți fi mai sigur să îl utilizați autor dacă credeți că utilizatorii dvs. ar putea schimba acest lucru.

De asemenea, puteți căuta postări de către o serie de autori:

$ args = array ('author__in' => array ('1', '2'));

Cele de mai sus vor interoga postări de la doi autori: cei cu ID 1 și 2, oferindu-vă aceleași rezultate ca șirul pe care l-am folosit cu autor parametru de mai sus.

În cele din urmă, puteți exclude postările de la unul sau mai mulți autori care utilizează author__not_in parametru. Argumentul de sub interogări pentru toate posturile, cu excepția celor de autor 1:

$ args = array ('author__not_in' => array ('1'));

Sau puteți exclude mai mulți autori:

$ args = array ('author__not_in' => array ('1', '2'));

Alternativ, puteți utiliza funcția autor parametru și folosiți un semn minus în fața ID-ului autorului pentru a exclude un autor:

$ args = array ('autor' => '-2'); 

Parametrul căutării

Există un singur parametru pentru căutare, care este s. Utilizați-l pentru a căuta postări care corespund unui termen de căutare. De exemplu, pentru a căuta postări conținând cuvintele cheie "mâncarea mea preferată", ați folosi acest lucru:

$ args = array ('s' => 'alimentele mele preferate');

S-ar putea să găsiți acest lucru util pentru a căuta postări similare cu cuvinte cheie similare, de exemplu.

Parametrii parola

Puteți utiliza cei doi parametri de parolă pentru a interoga postările cu și fără protecție prin parolă:

  • has_password (bool)
  • post_password (şir)

Primul parametru, has_password, vă permite să căutați mesaje cu sau fără protecție prin parolă. Deci, pentru a interoga mesajele protejate prin parolă:

$ args = array ('are_password' => true);

Și pentru postările care nu au parole:

$ args = array ('has_password' => false);

De asemenea, puteți interoga parola însăși, utilizând post_password parametru:

$ args = matrice ('post_password' => 'mypassword');

Permisiuni Parametru

Există un singur parametru disponibil pentru permisiuni, permanent, pe care îl utilizați pentru a interoga postările pe care utilizatorul curent le-a permis să le citească. Este nevoie de „Ușor de citit“ valoare și este conceput pentru a fi combinat cu alte argumente.

Deci, pentru a interoga mesajele protejate prin parolă și pentru a le afișa numai dacă utilizatorul are permisiunile corespunzătoare, ați folosi acest lucru:

$ args = array ('has_password' => true, 'perm' => 'lizibil');

Sau pentru a afișa schițe de postare dacă utilizatorul curent are permisiunea să le vizualizeze, ați folosi acest lucru:

$ args = array ('post_status' => 'draft', 'perm' => 'lizibil');

Caching Paramaters

Există trei parametri de cache care împiedică adăugarea datelor din memorie la cache:

  • cache_results (boolean): memoria cache de informații
  • update_post_meta_cache (boolean): cache-ul de informații post-meta
  • update_post_term_cache (boolean): cache de informații post-term

Valoarea implicită a tuturor celor trei este Adevărat: nu trebuie să le utilizați dacă doriți ca datele să fie adăugate în cache.

Deci, pentru a afișa toate mesajele din produs post, dar nu adăugați informații post în memoria cache, ați folosi acest lucru:

$ args = array ('post_type' => 'produs', 'cache_results' => false);

În mod normal, nu trebuie să utilizați acești parametri, deoarece este o practică bună să adăugați date postate în memoria cache. Cu toate acestea, este posibil ca uneori să doriți să preluați mesaje, astfel încât să puteți utiliza doar unele dintre datele postate, caz în care nu aveți nevoie de restul datelor postare din memoria cache. Un exemplu ar putea fi atunci când doriți doar să afișați o listă a titlurilor post cu linkuri, caz în care nu aveți nevoie de datele post-termen sau de metadatele care urmează să fie adăugate în memoria cache:

$ args = array ('post_type' => 'produs', 'update_post_meta_cache' => false, 'update_post_term_cache' => false);

Parametrul câmpului de returnare

Puteți utiliza funcția câmpuri pentru a specifica câmpurile care trebuie returnate din interogare. Acest lucru poate salva datele returnate din câmpurile din baza de date pe care nu le aveți nevoie la trimiterea datelor în buclă.

Implicit este returnarea tuturor câmpurilor, dar aveți două opțiuni cu câmpuri parametru pentru a restricționa acest lucru. În primul rând, „id-uri“ argument:

$ args = array ("câmpuri" => "ID-uri");

Aceasta ar întoarce doar o serie de ID-uri de post și niciun alt câmp. Dacă doriți să scoateți ceva în buclă (cum ar fi titlul postului), atunci ar trebui să utilizați funcții cum ar fi get_the_title ($ post-> ID); pentru a scoate titlul, care ar fi un mod îndelungat de a face lucruri.

Celălalt argument pe care îl puteți utiliza aduce o matrice asociativă de ID-uri postate cu ID-uri de postare copil:

$ args = array ('fields' => 'id => părinte');

Ați folosi acest lucru pentru a căuta posturi în funcție de celelalte argumente, plus copiii lor.

rezumat

Această parte a seriei de pe WP_Query introduce setul final de parametri pentru WP_Query clasă. Puteți să le utilizați pentru a interoga postările după autor, starea protejată prin parolă sau parola și termenii de căutare și pentru a stabili dacă rezultatele interogării sunt adăugate în memoria cache și care sunt returnate de interogare.

În următoarea parte a acestei serii, veți vedea câteva exemple de utilizare WP_Query în teme sau pluginuri. 

Cod