Eseguire query in WordPress con WP_Query
Pubblicato: 2023-02-12Il database che alimenta il tuo sito Web WordPress è pieno di informazioni preziose. Questo è ciò che rende possibile filtrare i tuoi post e le tue pagine in base a molte variabili diverse. Se ciò che desideri visualizzare non fa parte del tuo tema, tuttavia, esistono altri modi per utilizzare tali dati.
È qui che entra in gioco WP_Query. Questa è una classe PHP che utilizza un'ampia varietà di parametri. Di conseguenza, ti consente di estrarre i dati dal database di WordPress per utilizzarli o visualizzarli sul tuo sito web.
In questo articolo, forniremo una comprensione più approfondita della classe WP_Query e di come può essere utilizzata. Ti guideremo anche attraverso alcuni passaggi importanti da seguire quando lo usi. Se sei pronto, tuffiamoci subito!
Cos'è WP_Query?
Come accennato, WP_Query è una classe PHP utilizzata dal database di WordPress. Questa particolare classe può fare diverse cose, ma principalmente è usata per estrarre post dal database.
Come indica il nome, esegue una query in base ai criteri impostati per essa. Poiché ci sono molti parametri che puoi utilizzare con WP_Query in WordPress, puoi estrarre e visualizzare i post in diversi modi unici. Esploreremo queste opzioni in modo più dettagliato più avanti in questo post.
Come utilizzare WP_Query
Anche se stai solo imparando i vari aspetti della base di codice di WordPress, WP_Query è una buona classe con cui iniziare. Ora, analizziamo quattro diversi modi in cui puoi utilizzarlo sul tuo sito web.
1. Inizia con un ciclo personalizzato
Uno dei modi migliori per conoscere la chiamata WP_Query è attraverso il ciclo di WordPress. Se non hai familiarità con ciò che è il Loop, è un concetto importante su cui leggere.
Il Loop è ciò che chiama il database chiedendo il contenuto del post e visualizza i dati che vengono restituiti. Funziona anche in base a parametri impostati, ad esempio quanti post vuoi che il tuo sito visualizzi su una singola pagina (qualcosa che puoi configurare nel menu Impostazioni> Lettura ).
Le basi del Loop sono così:
<?php
if ( have_posts() ) :
while ( have_posts() ) : the_post();
// Display post content
endwhile;
endif;
?>
Questa semplice affermazione sta essenzialmente dicendo che se ci sono post, dovrebbero essere visualizzati. Naturalmente, puoi aggiungere un'ampia varietà di tag modello a questa base, al fine di creare il display che desideri.
Puoi anche inserire WP_Query nel Loop. Ciò ti consente di inserire parametri su quali post verranno restituiti. Analizziamo come sarebbe:
<?php
// The Query
$the_query = new WP_Query( $args );
// The Loop
if ( $the_query->have_posts() ) {
echo '<ul>';
while ( $the_query->have_posts() ) {
$the_query->the_post();
echo '<li>' . get_the_title() . '</li>';
}
echo '</ul>';
} else {
// no posts found
}
/* Restore original Post Data */
wp_reset_postdata();
Vedrai le stesse istruzioni if/while dal Loop di base, ma c'è una stringa WP_Query aggiuntiva. Qualsiasi parametro qui impostato determinerà quali post verranno visualizzati.
Ad esempio, se desideri escludere un determinato autore da un elenco di post, puoi farlo nel Loop con WP_Query:
$query = new WP_Query( array( 'author' => -12 ) );
Inserendo questo nel Loop, i tuoi post visualizzati non includerebbero più l'utente con il numero dell'autore di "12".
Il numero di parametri che puoi usare con questo metodo è quasi infinito. Puoi includere informazioni sulle categorie così come tassonomie avanzate, solo per fare due esempi.
2. Argomenti: la spina dorsale delle query personalizzate in WordPress
Nell'esempio precedente, potresti aver notato "($args)" come parte della stringa. Questa è una parte vitale della query che fa riferimento agli "argomenti" inclusi. Indica esattamente al database cosa includere nei dati restituiti.
In sostanza, questi argomenti possono essere impostati per determinare i risultati esatti che si desidera visualizzare. Gli argomenti possono essere utilizzati anche per modificare il valore delle variabili. Ad esempio, se desideri modificare il modo in cui l'elenco delle categorie viene visualizzato nella pagina, puoi utilizzare un argomento.
Il tuo argomento definirà una matrice di variabili e valori. Quindi, se lo desideri, puoi utilizzare un argomento per definire un array e dire al tuo database di presentare le categorie in ordine decrescente. Inoltre, puoi utilizzare lo stesso metodo per escludere tutte le categorie che non contengono post.
3. Parametri in WP_Query: categoria, tag e altro
Fino a questo punto, abbiamo solo menzionato i parametri di passaggio. A questo punto, diamo un'occhiata più da vicino a cosa possono effettivamente fare. La loro funzione principale è consentirti di estrarre raccolte di post progettate su misura.
Un esempio di parametro che può essere utilizzato nell'intestazione del tuo sito è il parametro Categoria. Puoi usarlo per specificare categorie specifiche per la visualizzazione. Questo viene fatto fornendo il relativo numero di categoria o slug.
Inoltre, puoi fare la stessa cosa con il parametro Tag. Naturalmente, i parametri Category e Tag sono in realtà solo la punta dell'iceberg quando si tratta di utilizzare WP_Query.
4. Modificare oggetti con metodi e proprietà
Sebbene non sia consigliabile modificare direttamente le proprietà di una classe come WP_Query, puoi interagire con esse utilizzando i metodi. In sostanza, i metodi sono come le funzioni, mentre le proprietà sono l'equivalente delle variabili.
WP_Query ha molte proprietà. Questi vanno dalle semplici proprietà "$posts" a quelle più complicate. Qualunque sia il metodo utilizzato per interagire con essi, i dati verranno restituiti in base ai parametri che scegli di mettere in atto.
WP_Query vs. query_posts() in WordPress
Vale la pena notare che esiste un altro modo per modificare la query principale sulla tua pagina. Questa è la funzione query_posts(). Sebbene possa funzionare in modo simile a WP_Query, può anche essere molto problematico.
Il riferimento al codice di WordPress consiglia vivamente di non utilizzare questa funzione all'interno del loop principale del tuo sito web. È anche meglio evitarlo nei plugin e nei temi. Questo perché sovrascriverà completamente la tua query principale.
La classe WP_Query è preferita, perché puoi anche "ripristinare" il ciclo principale dopo aver eseguito una query. Poiché WP_Query ti consente di eseguire più query in un ciclo, ti consigliamo di capire come implementare anche la funzione wp_reset_postdata.
Se hai incorporato un loop secondario all'interno del loop principale di WordPress, la funzione di ripristino verrà posizionata alla fine e avrà questo aspetto:
<?php wp_reset_postdata(); ?>
Ciò ripristinerà i tag modello predefiniti e tornerai a come erano le cose prima dell'inizio del ciclo secondario.
Personalizza il tuo sito WordPress con WP Engine
Essere in grado di apportare modifiche al modo in cui gli elementi vengono visualizzati sul tuo sito Web è solo uno dei vantaggi dell'utilizzo di WordPress. Comprendere WP_Query e sfruttare gli strumenti forniti nella pagina delle risorse per sviluppatori può aiutarti a creare siti web veramente personalizzati.
Qui a WP Engine, siamo appassionati di assicurarci che tu abbia le risorse necessarie per creare siti Web accattivanti. Dai un'occhiata alle nostre soluzioni WordPress e ai nostri piani di hosting oggi stesso!