Mastering WP_Meta_Query e WP_Date_Query

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!

Lavorare con tutti i tipi di metadati attraverso la classe WP_Meta_Query

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.

Esempio di utilizzo della classe WP_Meta_Query

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.

Query di Wrangling con la classe WP_Date_Query

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.

Esempio di utilizzo della classe WP_Date_Query

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.

Avvolgere tutto

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!