Argomenti WP_Query autore, ricerca, password e permessi

Finora in questa serie hai imparato una serie di argomenti che puoi usare con WP_Query classe, per selezionare i post per tipo, categoria, tag, metadati, data, stato e molto altro.

In questo tutorial finale su WP_Query argomenti, eseguirò alcuni parametri meno frequentemente usati che possono dare alle tue query ancora più flessibilità.

I parametri che tratteremo qui sono per:

  • autore
  • ricerca
  • parola d'ordine
  • permessi
  • caching
  • campi di ritorno

Prima di iniziare, facciamo un rapido riepilogo su come codificare i tuoi argomenti con WP_Query.

Un riassunto su come gli argomenti funzionano in WP_Query

Quando si codifica WP_Query nei temi o nei plugin, è necessario includere quattro elementi principali:

  • gli argomenti per la query, usando i parametri che saranno trattati in questo tutorial
  • la query stessa
  • il cappio
  • terminare: chiudere se e mentre tag e reimpostare i dati

In pratica questo sarà simile al seguente:

have_posts ()) // Inizia il ciclo sui risultati della query. while ($ query-> have_posts ()) $ query-> the_post (); // I contenuti dei risultati dei post interrogati vanno qui.  // Ripristina i dati del post originale. wp_reset_postdata (); ?>

Gli argomenti sono ciò che dice a WordPress quali dati recuperare dal database e sono quelli che coprirò qui. Quindi tutto ciò su cui ci stiamo concentrando qui è la prima parte del codice:

$ args = array (// Argomenti per la tua query.);

Come puoi vedere, gli argomenti sono contenuti in un array. Imparerai come codificarli mentre lavori attraverso questo tutorial.

Coding Your Arguments

Esiste un modo specifico per codificare gli argomenti nell'array, che è il seguente:

$ args = array ('parameter1' => 'value', 'parameter2' => 'value', 'parameter3' => 'value');

È necessario includere i parametri e i relativi valori tra virgolette singole, utilizzare => tra di loro e separarli con una virgola. Se si sbaglia, WordPress potrebbe non aggiungere tutti i tuoi argomenti alla query o si potrebbe ottenere una schermata bianca.

Parametri dell'autore

Esistono quattro parametri che è possibile utilizzare per eseguire query per autore:

  • autore (int): usa l'ID autore
  • nome dell'autore (stringa): usa 'user_nicename' (NON nome)
  • author__in (schieramento): usa l'ID autore
  • author__not_in (schieramento)

Il primo, autore, ti consente di interrogare i post di uno o più autori, fornendo l'ID dell'autore:

$ args = array ('author' => '2');

Il codice sopra riporta tutti i messaggi dell'autore di cui è l'ID 2.

Puoi anche utilizzare una stringa per interrogare i post di più di un autore:

$ args = array ('author' => '1, 2');

Se si desidera eseguire una query per nome, si utilizzerà il nome dell'autore parametro:

$ args = array ('author_name' => 'rachelmccollin'); 

Questo parametro prende il valore dal user_nicename campo nel database come argomento, che viene visualizzato come nickname nella schermata di amministrazione degli utenti:

Nota che, essendo modificabile dagli utenti, sarai più sicuro da usare autore parametro se pensi che i tuoi utenti potrebbero cambiarlo.

Puoi anche eseguire una query per i post di un array di autori:

$ args = array ('author__in' => array ('1', '2'));

Quanto sopra richiederà i post di due autori: quelli con ID 1 e 2, dandoti gli stessi risultati della stringa che ho usato con autore parametro sopra.

Infine, puoi escludere i post di uno o più autori utilizzando il author__not_in parametro. L'argomento sotto le query per tutti i messaggi tranne quelli per autore 1:

$ args = array ('author__not_in' => array ('1'));

Oppure puoi escludere più autori:

$ args = array ('author__not_in' => array ('1', '2'));

In alternativa puoi usare il autore parametro e utilizzare un segno meno davanti all'ID autore per escludere un autore:

$ args = array ('author' => '-2'); 

Cerca parametro

C'è solo un parametro per la ricerca, che è S. Usalo per interrogare per i messaggi che corrispondono a un termine di ricerca. Quindi, ad esempio per richiedere i post contenenti le parole chiave "il mio cibo preferito", dovresti usare questo:

$ args = array ('s' => 'il mio cibo preferito');

Potresti trovare utile per cercare i post correlati con parole chiave simili, ad esempio.

Parametri della password

È possibile utilizzare i due parametri password per interrogare i post con e senza protezione tramite password:

  • has_password (bool)
  • post_password (stringa)

Il primo parametro, has_password, ti consente di cercare post con o senza protezione tramite password. Quindi, per cercare post che sono protetti da password:

$ args = array ('has_password' => true);

E per i post che non hanno password:

$ args = array ('has_password' => false);

Puoi anche eseguire una query tramite la password stessa, utilizzando il comando post_password parametro:

$ args = array ('post_password' => 'mypassword');

Parametro delle autorizzazioni

C'è solo un parametro disponibile per le autorizzazioni, permanente, che usi per interrogare i post che l'utente corrente ha il permesso di leggere. Ci vuole il 'leggibile' valore ed è progettato per essere combinato con altri argomenti.

Quindi, per interrogare i post protetti da password e visualizzarli solo se l'utente ha i permessi appropriati, dovresti usare questo:

$ args = array ('has_password' => true, 'perm' => 'leggibile');

Oppure per visualizzare bozze di post se l'utente corrente ha il permesso di vederli, dovresti usare questo:

$ args = array ('post_status' => 'draft', 'perm' => 'leggibile');

Parametri di memorizzazione nella cache

Esistono tre parametri di memorizzazione nella cache, che impediscono l'aggiunta alla cache dei dati recuperati dalla query:

  • cache_results (booleano): posta cache delle informazioni
  • update_post_meta_cache (booleano): posta cache di meta-informazione
  • update_post_term_cache (booleano): cache di informazioni post termine

Il valore predefinito di tutti e tre è vero: non è necessario usarli se si desidera che i dati vengano aggiunti alla cache.

Quindi, per visualizzare tutti i messaggi di Prodotto inserisci il tipo ma non aggiungi le informazioni del post alla cache, dovresti usare questo:

$ args = array ('post_type' => 'product', 'cache_results' => false);

Normalmente non si dovrebbero usare questi parametri, dato che è buona pratica aggiungere dati di post alla cache. Tuttavia, a volte potresti voler recuperare i post in modo da poter utilizzare solo alcuni dei dati del post, nel qual caso non è necessario il resto dei dati dei post nella cache. Un esempio potrebbe essere quando si desidera generare un elenco di titoli di post con collegamenti, nel qual caso non è necessario che i dati post termine oi metadati vengano aggiunti alla cache:

$ args = array ('post_type' => 'product', 'update_post_meta_cache' => false, 'update_post_term_cache' => false);

Parametro dei campi di restituzione

Puoi usare il i campi parametro per specificare quali campi restituire dalla query. Questo può salvare i dati di ritorno dai campi nel database che non è necessario quando si generano i dati nel loop.

L'impostazione predefinita è di restituire tutti i campi, ma hai due opzioni con i campi parametro per limitare questo. Prima il 'id' discussione:

$ args = array ('fields' => 'ids');

Ciò restituirebbe solo una matrice di ID post e nessun altro campo. Se volessi produrre qualcosa nel tuo loop (come il titolo del post) dovresti usare funzioni come get_the_title ($ post-> ID); emettere il titolo, che sarebbe un modo prolisso di fare le cose.

L'altro argomento che è possibile utilizzare recupera un array associativo di ID post con ID post figlio:

$ args = array ('fields' => 'id => parent');

Lo useresti per interrogare i post in base agli altri tuoi argomenti più i loro figli.

Sommario

Questa parte della serie su WP_Query introduce la serie finale di parametri per il WP_Query classe. È possibile utilizzarli per interrogare i post per autore, lo stato protetto da password o la password stessa e i termini di ricerca e per impostare se i risultati della query vengono aggiunti alla cache e quali campi vengono restituiti dalla query.

Nella parte successiva di questa serie, vedrai alcuni esempi di utilizzo WP_Query nei tuoi temi o plugin.