Padronanza di WP_Query funzioni correlate

Ciao, e benvenuti alla seconda parte della serie chiamata "Mastering WP_Query". Nella prima parte, abbiamo iniziato con la serie semplicemente introducendo cosa WP_Query la classe è. E in questa seconda parte, impareremo le funzioni relative a WP_Query.

Cominciamo!

Sfruttare la potenza di WP_Query con funzioni, azioni e filtri

Non sono un esperto di programmazione, ma posso vedere che il WP_Query la classe è uno dei migliori esempi del modello MVC. È estremamente potente, completamente estensibile e molto facile da usare quando si conoscono le basi.

Oltre alle sue proprietà, metodi e parametri (che avremo in futuro), WordPress offre funzioni e hook aggiuntivi (ovvero azioni e filtri) per lavorare con WP_Query classe. In questo tutorial, impareremo a conoscere le funzioni e nella parte successiva vedremo azioni e filtri correlati WP_Query. Se vedi che ho dimenticato qualcosa, sentiti libero di notificarmi sparando un commento.

Funzioni relative a WP_Query

Ci sono 13 funzioni WordPress che funzionano con WP_Query classe che può aiutarti a sfruttare il potere di WP_Query. Non hanno bisogno di presentazioni, quindi eccoci qui:

Ottenere le variabili di interrogazione pubblica: get_query_var ()

Il nome della nostra prima funzione parla da solo, davvero: prende il globale $ WP_Query oggetto e recupera una variabile di query pubblica da esso. Ha due parametri: il primo è la variabile che restituisce il suo valore e il secondo è un valore predefinito da restituire se la variabile non è impostata:

Colpire il ciclo principale: query_posts ()

Ad essere onesti, questo è un male funzione. Davvero non devi usarlo affatto, ma per il gusto di dire "nel modo giusto", lo esamineremo e diremo che è "nel modo sbagliato".

query_posts () è una funzione che altera la query principale mettendo da parte la query principale ed eseguendo una nuova query e che dovrai utilizzare wp_reset_query () pulire dopo.

Questa funzione è una delle più abusato funzioni nel nucleo di WordPress. Non dovresti usarlo per creare query secondarie: puoi usare il WP_Query classe o il get_posts () funzione (di cui parleremo più avanti in questo tutorial). Non dovresti usarlo per alterare la query principale: dovresti usare il pre_get_posts azione (di cui parleremo più avanti). Persino il Codice ci scoraggia dall'usarlo e mostra alternative.

Bottom line: non usarlo.

Ottenere un singolo post: get_post ()

Un'altra funzione auto-esplicativa è get_post (), che usi per ottenere un singolo post. Ha tre parametri opzionali:

  • Il primo è l'ID post (o l'ID del post corrente per impostazione predefinita).
  • Il secondo è il tipo di risultato che otterrai: o OGGETTO, ARRAY_A (un array associativo) o ARRAY_N (un array numerico).
  • Il terzo è la scelta di filtrare il risultato. L'impostazione predefinita è 'crudo' quindi non verrà filtrato a meno che non lo si imposti 'modificare', 'display', 'attributo''Js'.

Salvataggio di query su array: get_posts ()

Il get_posts () la funzione ci consente di eseguire query e salvarle come matrici da utilizzare in vari luoghi. Richiede gli stessi argomenti con WP_Query così puoi personalizzare la query come preferisci. (Faremo una recensione WP_Queryi parametri in futuro, quindi rimanete sintonizzati!) È il modo migliore e più efficiente per creare elenchi di post, ma non cicli.

 'news', 'order' => 'ASC', 'orderby' => 'post_title', 'posts_per_page' => -1); // Restituisce una matrice di tutti i post nella categoria "notizie". $ all_posts_list = get_posts ($ args); ?>

Sebbene questa funzione possa essere utilizzata per eseguire "query secondarie" senza problemi, il Codex consiglia di utilizzare WP_Query quando si creano loop multipli e si usa get_posts () quando si preleva un elenco di post. Peter R. Knight spiega la differenza tra get_posts () e WP_Query in termini semplici: la differenza principale è questa WP_Query rende più query di database (dati post, metadati, dati dell'autore e dati di commenti) mentre get_posts () fa una sola query (dati post).

Ottenere pagine: get_pages ()

Questo dispari la funzione ha lo scopo di recuperare un elenco di pagine, sebbene abbia un post_type parametro che può anche consentire di selezionare un altro tipo di post (purché il tipo di post sia gerarchico, altrimenti restituisce falso).

 "ASC", "sort_column" => "post_title", "hierarchical" => 1, "exclude" => "," include "=>", "meta_key" => "," meta_value "=>", "autori '=> ",' child_of '=> 0,' parent '=> -1,' exclude_tree '=>",' number '=> ",' offset '=> 0,' post_type '=>' pagina ', 'post_status' => 'pubblica'); $ pages = get_pages ($ args);?>

Accetta argomenti molto simili a WP_Querygli argomenti, ma sono leggermente diversi:

  • ordinamento: Se ordinare le pagine in ordine ascendente (asc) o decrescente (disc) ordine.
  • sort_column: Come ordinare le pagine. accetta titolo del post, menu_order, data di pubblicazione, post_modified, ID, post_author, e POST_NAME.
  • gerarchica: Se elencare le pagine in ordine gerarchico (1) o no (0).
  • escludere: Un elenco separato da virgole o un array di ID pagina da escludere dall'elenco.
  • includere: Un elenco separato da virgole o un array di ID di pagina da includere nell'elenco ed escludere tutto il resto.
  • meta_key: Se usato con meta_value argomento, include solo le pagine che hanno la meta chiave e il valore definiti.
  • meta_value: Se usato con meta_key argomento, include solo le pagine che hanno la meta chiave e il valore definiti.
  • autori: Un elenco separato da virgole di ID autore.
  • figlio di: Un ID di una pagina per recuperare solo i suoi figli e nipoti nell'elenco.
  • genitore: Elenca le pagine che hanno l'ID pagina fornito come genitore. Affinché questo argomento funzioni, il gerarchica argomento deve essere impostato su 0.
  • exclude_tree: Un elenco separato da virgole o un array di ID pagina da escludere con i relativi figli.
  • numero: Numero di pagine da recuperare.
  • compensare: Numero di pagine da saltare dall'alto.
  • post_type: Il tipo di post da interrogare. Naturalmente, il valore predefinito è pagina.
  • post_status: Un elenco separato da virgole di tipi di stato post da includere.

Verifica se i messaggi di ritorno delle query: have_posts ()

Senza accettare alcun parametro, questa funzione restituisce semplicemente VERO se la query restituisce eventuali record e FALSE altrimenti.

Lavorando al ciclo: the_post ()

Il Codice dice che "itera l'indice dei post nel Loop". Fa diverse cose:

  1. Prende il record successivo dalla query.
  2. Imposta il $ postale dati.
  3. Imposta il nel loop parametro a VERO.

Impostare $ postale: setup_postdata ()

Anche questa funzione parla da sola: imposta i dati post globali. Vediamo cosa dice il Codex su questo:

setup_postdata () riempie le variabili globali $ id, $ authordata, $ currentday, $ currentmonth, $ page, $ pages, $ multipage, $ more, $ numpages, che aiutano molti Tag modello a funzionare nel contesto corrente del post. Non assegna il globale $ postale variabile, ma sembra aspettarsi che il suo argomento sia un riferimento ad esso.

Cancellare il loop attuale: rewind_posts ()

Ancora un'altra funzione il cui nome indica la sua funzionalità: questa funzione semplicemente "riavvolge" il Loop in modo da poterlo riavviare in seguito.

Ripristino $ postalewp_reset_postdata ()

Questa funzione reimposta il globale $ postale variabile torna al primo post nella query principale. È meglio usare questo dopo una query secondaria.

Reimpostazione della query: wp_reset_query ()

Questo dovrebbe essere usato se la query principale è cambiata (con il query_posts () funzione o il pre_get_posts azione che vedremo nella prossima parte) in modo che la query principale possa essere ripristinata.

Verifica se la query corrente è la query principale: is_main_query ()

Questo è un tag condizionale che ritorna VERO se la query corrente è la query principale e FALSE se non lo è. Semplice, giusto?

Verifica se siamo nel ciclo: nel loop()

Un altro tag condizionale è nel loop() che semplicemente ritorna VERO o FALSE se il tuo codice è in esecuzione all'interno del Loop o meno.

Fine della seconda parte

Eccoti, ora sai (probabilmente) tutte le funzioni relative a WP_Query! Resta sintonizzato per la parte successiva in cui verremo a conoscenza WP_Query azioni e filtri correlati.

Avete commenti o qualcosa da aggiungere a questa parte? Sentiti libero di condividere i tuoi pensieri commentando di seguito. E se ti è piaciuto l'articolo, non dimenticare di condividerlo con i tuoi amici!