Benvenuto nella parte finale della serie, beh, tecnicamente la parte finale sarà "Serie Finale", ma hai un'idea. In questa parte, imparerai a conoscere due classi fratelli chiamate WP_Meta_Query
e WP_Date_Query
.
Senza ulteriori indugi, iniziamo!
Il WP_Meta_Query
la classe è una "classe di supporto", che aiuta WP_Query
per effettuare query con metadati.
Come sai, WordPress memorizza tre tipi di metadati nel database: post meta, meta utente e meta meta. Abbiamo visto nelle precedenti esercitazioni che possiamo eseguire meta query all'interno delle query che facciamo con il WP_Query
, WP_User_Query
e WP_Comment_Query
classi (con il 'Meta_query'
parametro). Il WP_Meta_Query
è in esecuzione quando si eseguono tali query.
Risulta, è possibile ottenere gli SQL per queste query meta-correlate con l'aiuto del WP_Meta_Query
classe. Questa classe non ottiene realmente i risultati della query specificata, ma invece prepara i comandi SQL da utilizzare altrove.
Non possiamo dire che è un tutorial se non facciamo un esempio, giusto? Con un semplice esempio, vedremo come possiamo usare il WP_Meta_Query
classe nella vita reale. (Certo, è una cosa estremamente specifica ottenere il codice SQL per una query legata alla meta, ma cercherò di trovare un esempio reale.)
Immaginiamo che tu voglia creare un "plugin per post correlati" speciale per il tuo sito web, dove elencherai i post che hanno lo stesso valore meta per una meta chiave-o un altro meta-valore per un'altra meta chiave. E invece di fare una meta query all'interno di a WP_Query
Ad esempio, si desidera ottenere il codice SQL della query per utilizzarlo dinamicamente in blocchi di codice separati. Ecco i passaggi per preparare il codice SQL:
'OR', array ('meta_key' => 'Some_Key', 'meta_value' => 'Some_Value', 'compare' => '='), array ('meta_key' => 'Some_Other_Key', 'meta_value' => 'Some_Other_Value', 'compare' => '=')); $ my_meta_query = new WP_Meta_Query; $ my_meta_query-> parse_query_vars ($ my_meta_query_args); $ my_meta_query_sql = $ my_meta_query-> get_sql ('post', $ wpdb-> post, 'ID'); ?>
Ecco qua: The $ my_meta_sql
variabile memorizza il codice SQL per la tua query speciale, e puoi usare questo codice SQL ovunque ti piaccia nel tuo progetto.
Proprio come WP_Meta_Query
, il WP_Date_Query
è una classe di supporto per il WP_Query
, WP_User_Query
e WP_Comment_Query
classi. Questa classe di supporto è stata introdotta in WordPress versione 3.7. Allora, la classe non supportava WP_User_Query
, ma dal momento che la versione 4.1, è possibile interrogare all'interno della tabella degli utenti (il user_registered
colonna in particolare).
Simile a WP_Meta_Query
e la sua capacità di interrogare meta chiavi e valori, il WP_Date_Query
class ci consente di interrogare i campi data all'interno dei post, commenti e tabelle degli utenti. E esattamente come WP_Meta_Query
, questa classe helper consente inoltre di restituire il codice SQL preparato per eseguire una query relativa alla data.
Al fine di comprendere appieno come WP_Date_Query
classe funziona, passiamo attraverso un esempio con esso. Sarà un altro esempio inutilmente specifico, ma non sarebbe giusto lasciare questa parte senza un esempio.
Immaginiamo che, per qualche ragione, abbiamo bisogno di interrogare per i commenti fatti nel mese corrente e prima di mezzogiorno. (per favore mandami un commento se trovi un buon caso per recuperare i commenti fatti nel mese corrente e prima di mezzogiorno!) Ecco come ottenere il codice SQL per questa bizzarra query:
date ('n'),), array ('before' => 'noon'), 'relation' => 'AND'); $ my_date_query = new WP_Date_Query ($ my_date_query_args, 'comment_date'); $ my_date_query_sql = $ my_date_query-> get_sql (); ?>
Ecco qua. Tieni presente che puoi utilizzare i formati di date relative di PHP, che sono davvero utili.
Suggerimento: Christian Bruckner ha un ottimo post su MarketPress.com su come WP_Date_Query
lavori. È un po 'obsoleto (perché è stato scritto prima che WordPress 4.1 venisse rilasciato) ma è molto ben scritto e comunque una buona lettura. Assicurati di controllare.
Con queste due classi di aiuto, stiamo finendo il lungo viaggio di dissezionare il WP_Query
classe. Questa è stata una delle più lunghe serie di tutorial nella storia di Tuts +, quindi grazie per aver portato con noi fino alla fine! Nella prossima (e ultima) parte, ricapitoleremo quello che abbiamo passato per l'ultima volta e chiudiamo la serie.
Hai qualcosa da aggiungere a questo articolo? Se è così, non esitate a condividere i tuoi pensieri nella sezione commenti qui sotto. E se ti è piaciuto l'articolo, non dimenticare di condividerlo con i tuoi amici!