Nell'ultimo anno, è stato scritto molto sui miglioramenti dell'interfaccia utente di WordPress: il cambiamento più discusso è stata la migliore esperienza di scrittura.
Ma se sei uno sviluppatore vorrai sapere di meno su questo e altro su ciò che è cambiato sotto il cofano. Qui dimostrerò uno dei cambiamenti più interessanti per gli sviluppatori: miglioramenti a determinati tipi di query.
Le principali modifiche sono le seguenti:
Diamo un'occhiata ai cambiamenti.
Nelle versioni precedenti di WordPress, potresti usare un E
o O
istruzione per definire query per termini, date e metadati della tassonomia. Quindi, ad esempio, i seguenti argomenti verranno utilizzati in una query su un sito di ricette che emette ricette veloci per la colazione:
'post', 'tax_query' => array ('relation' => 'AND', array ('taxonomy' => 'speed', 'field' => 'slug', 'terms' => array ('veloce' )), array ('taxonomy' => 'meal', 'field' => 'slug', 'terms' => array ('breakfast'))))); $ query = new WP_Query ($ args); ?>
Questo cerca il 'velocità'
e 'pasto'
tassonomie e uscite messaggi con il 'Presto'
e 'prima colazione'
termini rispettivamente.
Ma cosa succede se si desidera scrivere una query più complessa? Diciamo che volevi ricette veloci per la colazione e ricette lente per il pranzo (forse per qualcuno che vuole fare colazione velocemente, così hanno più tempo per cucinare il pranzo!). Non vuoi usare un semplice E
dichiarazione per unire tutti gli elementi della tua query, da allora si otterrebbero ricette lente per la colazione e pranzo, per esempio. E tu non vuoi usare un O
dichiarazione che collega tutti i termini, poiché otterrai tutti i tipi di ricette che hanno solo uno dei termini interrogati insieme ad altri che vuoi filtrare.
La buona notizia è che ora puoi farlo. Per interrogare ricette veloci per colazione e ricette lente per il pranzo, dovresti usare quanto segue:
array ('relation' => 'OR', array ('relation' => 'AND', array ('taxonomy' => 'pasto', 'campo' => 'slug', 'termini' => array (' colazione ')), array (' taxonomy '=>' speed ',' field '=>' slug ',' terms '=> array (' quick '))), array (' relation '=>' AND ', array ('taxonomy' => 'meal', 'field' => 'slug', 'terms' => array ('lunch')), array ('taxonomy' => 'speed', 'field' => ' slug ',' terms '=> array (' slow ')))))); $ query = new WP_Query ($ args); ?>
Qui ho usato due array annidati:
O
, perché stiamo cercando post che siano veloci ricette per la colazione o ricette slow lunch.E
perché vuoi che il post abbia entrambi i termini.E
.Ovviamente è possibile variare le query per includere più termini e valori di tassonomia e ottenere tutto il necessario.
L'esempio che ho dato sopra utilizza termini di tassonomia, ma questa funzione è stata aggiunta anche alle query di data e metadati. I metadati sono potenzialmente in cui le cose potrebbero diventare interessanti, dato che hai lo scopo di tanti valori.
La sintassi funziona esattamente allo stesso modo per le query di data e metadati. Per le meta query che sostituisci tax_query
con meta_query
e usare 'chiave'
e 'valore'
come i parametri. Per le query sulla data che sostituisci tax_query
con date_query
e utilizzare i parametri di data forniti nel codice WordPress.
Per interrogare i commenti, si usa il WP_Comment_Query
classe al posto del più comunemente usato WP_Query
classe. Questa classe ha aggiunto otto nuovi parametri:
'Author__in'
: identificare l'autore del commento (o una serie di autori)'Author__not_in'
: identificare i commenti non da un certo autore (o serie di autori)'Post_author__in'
: identifica l'autore (o la matrice di autori) del post su cui è stato effettuato il commento'Post_author__not_in'
: esclude commenti fatti su post scritti da particolari autori o matrici di autori'Comment__in'
: commenti con un determinato ID o array di ID'Comment__not_in'
: esclude commenti con un determinato ID o array di ID'Post__in'
: commenti fatti su un post o array di post (usando l'ID post)'Post__not_in'
: esclude i commenti fatti su un post o una serie di post (usando l'ID post)I valori utilizzati per questi sono l'ID dell'autore, l'ID di commento o l'ID post appropriato.
Si noti che il WP_Comment_Query
la classe ora supporta anche le query nidificate.
Ci sono stati anche un paio di correzioni di bug che potresti trovare utili:
date_query
è stato usato insieme a a tax_query
o meta_query
è stato risolto."orderby" => "meta_value"
è stato usato quando si passa a 'Meta_query'
con il O
relazione in WP_Query
, questo usato per rompere la query. Questo è stato risolto.Se si desidera il downdown su tutti i dettagli, è possibile trovarlo sul sito principale di WordPress.
Questi miglioramenti alle query portano a WordPress un ulteriore passo avanti verso la piena capacità di CMS. La possibilità di utilizzare query annidate significa che è possibile produrre contenuti in modi molto più flessibili e complessi. Sarà interessante vedere come le persone li usano!