Studiem metadatele în wordpress partea 4

În prezent, ne-am uitat cum să accesăm metadatele în WordPress și cum să lucrăm cu matricea returnată. Acum, când știm cum să obținem și afișăm metadatele, este timpul să trecem la învățarea modului de a modifica bucla WordPress pentru a returna înregistrările cu anumite valori de metadate.







Utilizăm WP_Query pentru a executa interogări cu privire la valoarea câmpurilor meta

Pentru a executa interogări cu privire la valoarea meta-câmpurilor, trebuie să folosim WP_Query și să definim meta_query. Dacă, de exemplu, avem un tip de înregistrare arbitrară, numit filme, care conțin un câmp arbitrar numit director, putem crea o cerere pentru toate filmele filmate de unul dintre cei trei regizori ai Star Wars.

Să aruncăm o privire la codul de mai jos. Acordați o atenție deosebită meta_query:

Avem o matrice cu numele directorilor, alcătuită și din matrice. Mai întâi mergem la matrice pentru argumentele noastre către WP_Query. După primul argument post_type, deschidem o matrice care conține argumentele meta_query. În ea, întrebăm cheia pe care o vom căuta - în cazul nostru, acesta este directorul. De asemenea, setăm matricea de valori pe care o vom căuta în această cheie (câmp).

Cel mai recent argument afișează exact cum vom compara valorile. În cazul nostru, vom folosi comparația IN, care ne va permite să obținem înregistrări cu aceste valori în câmpul director.







Alte tipuri de comparații

Ce se întâmplă dacă vrem să obțineți filme care au fost filmate de regizorul Star Wars, dar vrem să elimine prequel Star Wars? Putem adăuga pur și simplu, o altă serie de argumente pentru meta_query noastre, dar de data aceasta se va folosi valorile unei matrice cu numele de filme pentru cheie film_title, și ca o comparație, nu întreb cum ar fi, pentru a exclude toate înregistrările cu aceste valori în domeniul film_title.

Acum WordPress va căuta filmele acestor trei regizori cu titluri care nu sunt titlurile vreunui dintre cele trei prequels.

Rezultatul meta-câmpurilor din WP_Query

Până acum, v-am arătat cum să utilizați WP_Query pentru a găsi înregistrări care au o valoare specifică într-un câmp arbitrar. Să ne uităm acum la modul de afișare a acestor câmpuri.

Cartografia acestor câmpuri are loc în același fel ca înainte, cu o excepție - în loc să folosim get_the_ID (), pentru a seta ID-ul pentru get_post_meta (), vom folosi contextul obiectului. Astfel, în ciclul nostru, pe care îl puteți vedea mai jos, ID-ul se dovedește puțin diferit - prin $ query-> post-> ID.

Folosind WP_User_Query

Ca și în cazul WP_Query, pentru a găsi intrări cu anumite valori pentru diferite câmpuri, putem folosi echivalentul tabelului WP_Query pentru utilizatori - WP_User_Query.

De exemplu, dacă avem un câmp numit subscriber_level și dorim să găsim numai acei utilizatori care au un nivel de abonați ca extra_special sau super_special, putem folosi aceeași metodă pe care am folosit pentru a găsi trei directori Star Wars filme:

Ca și în cazul WP_Query, putem combina diferite tipuri de comparații pentru a controla care utilizatori vor fi returnate la noi. În exemplul următor, combinăm interogarea anterioară cu interogarea utilizatorilor ale căror nume sunt Luke, Han sau Leia:

În această serie de articole, ne-am familiarizat cu metadatele din WordPress și am învățat, de asemenea, câteva lecții din utilizarea acestora.







Articole similare

Trimiteți-le prietenilor: