✅ Notizie, temi, plugin WEB e WordPress. Qui condividiamo suggerimenti e le migliori soluzioni per siti web.

Tutorial sul tema WordPress per principianti – Parte 12: Query post personalizzata

15

In questa lezione finale impariamo come scrivere la tua query di post e scorrerli senza interrompere il ciclo padre nel modello. Creeremo una parte del modello per i singoli post che mostra i post correlati nella stessa categoria.

Quello che faremo in questa lezione è una query sui post correlati nella nostra visualizzazione post singolo, che mostra un massimo di 3 post, di tipo post, nella stessa categoria o categorie del post in cui ci troviamo, escludere il post corrente stesso, e randomizza i post mostrati. Esamineremo anche le strategie per non rovinare il ciclo nidificato.

Modello di post correlati

Facciamo in modo che i post correlati siano una parte del modello, di cui abbiamo appreso nella parte 10. In questo modo non complichiamo eccessivamente single.phpe rendiamo il nostro codice più riutilizzabile. Posiziona la richiesta di questa nuova parte del modello dove desideri. Lo posizionerò subito prima di richiedere il modello di commenti:

Ora, creiamo un nuovo file vuoto nella nostra cartella del tema e chiamiamolo related-posts.php. Con questo file siamo pronti per tuffarci nella creazione di una query post personalizzata.

Interrogazione post personalizzata

Se vuoi fare una query personalizzata dei post, hai alcune opzioni, ma ti consiglio di abituarti alla classe WP_Query. Aggiungi questa pagina della documentazione ai segnalibri, poiché le farai spesso riferimento, perché ci sono così tante opzioni. Ti mostrerò un esempio pratico di impostazione di una query facendo riferimento alla documentazione per ciascuna specifica che vogliamo aggiungere.

Se vuoi saperne di più su come interrogare i post, ho un post che approfondisce proprio questo.

Per creare una query post personalizzata, chiameremo new WP_Query(), passeremo un array di argomenti e memorizzeremo il suo risultato in una variabile. E poi useremo lo stesso identico ciclo che abbiamo usato prima nei nostri modelli (dai un’occhiata al ciclo originale qui per confrontare). Ma dobbiamo dire al ciclo di passare attraverso la variabile, invece di quella globale (che è il singolo post).

Ecco come apparirà il ciclo quando lo aggiungi a una query personalizzata:

Come puoi vedere, il ciclo è esattamente lo stesso, usando have_postse the_post. La differenza è che li chiamiamo $related_postssull’oggetto. Se saltiamo la $related_postsparte, WordPress presume automaticamente che sia la query globale dei post.

Potresti anche notare la chiamata alla funzione wp_reset_postdata()subito dopo il ciclo. Questo è il modo in cui "ripuliamo dopo noi stessi" dopo una query personalizzata con WP_Query. Ricorda che the_post()imposta l’oggetto post globale in modo che possiamo usare the_title()ecc. E poiché siamo già all’interno di un ciclo (quello in single.php), dobbiamo assicurarci puliamo e reimpostiamo il post al singolo post dopo che abbiamo finito. Se non reimpostamo i dati dei post, qualsiasi cosa dopo questo farà riferimento all’ultimo post correlato che abbiamo esaminato. Questo può essere un grosso problema! Nel nostro esempio abbiamo avere un modello di commenti che segua questo. Tralasciando il ripristino, il modello di commento mostrerà i commenti dell’ultimo post correlato nel ciclo. E non il singolo post che stiamo effettivamente guardando!

Implementazione del nostro ciclo personalizzato

Bene, iniziamo a implementare il ciclo personalizzato nel nostro related-posts.php. Ho aggiunto un wrapper e un titolo, ma come al solito puoi regolare l’HTML come desideri:

Ora vedremo il potere della riutilizzabilità nelle parti del modello. Diciamo che all’interno di questo ciclo personalizzato vogliamo mostrare esattamente lo stesso contenuto che facciamo nel nostro content-loop.php, che utilizziamo nei nostri modelli di archivio. Tutto quello che dobbiamo fare è richiedere questa parte del modello all’interno del nostro ciclo personalizzato, siamo tutti pronti a gestire l’output di ogni post!

Ora non resta che aggiungere gli argomenti alla nostra query di post, assicurandoci di recuperare ciò che vogliamo. Esaminiamo gli argomenti uno per uno.

Costruire gli argomenti per la nostra query post personalizzata

Non vogliamo recuperare più post di 3. Nella documentazione (sezione “Parametri di impaginazione") l’argomento per questo è posts_per_page. Quindi aggiungiamo l’elemento array:

Vogliamo assicurarci che WordPress recuperi i post e non le pagine o qualcos’altro. In “Parametri tipo post” troviamo:

Vogliamo evitare che il singolo post in cui ci troviamo appaia nella nostra query sui post correlati, perché non ha senso, giusto? La documentazione ci dice in "Parametri post e pagina" che possiamo aggiungere l’ID post in un array per post__not_in:

Vogliamo anche randomizzare i post; perché per impostazione predefinita recupererà gli ultimi post pubblicati e questo può diventare rapidamente piuttosto ripetitivo mentre si passano i post. Fortunatamente WordPress ha una funzione per questo nel modo in cui ordina i post; in “Ordina e ordina per parametri” troviamo:

Infine, vogliamo interrogare i post che si trovano all’interno delle stesse categorie del post in cui ci troviamo. Per fare ciò, dobbiamo prima, prima degli argomenti della query, portare le categorie al singolo post in cui ci troviamo. In "Parametri di categoria" vediamo che possiamo fornire una matrice di ID di categoria a category__in. Fortunatamente WordPress ha una funzione per ottenere gli ID di categoria per un post; wp_get_post_categories()che possiamo usare direttamente come valore del parametro. Perfetto!

Ecco la query finale e i suoi argomenti:

Aggiorna e dovresti vedere 3 post elencati nella parte inferiore della visualizzazione singola. Aggiorna più volte per vedere che cambiano perché abbiamo detto a WordPress di randomizzarli. Nota: se hai meno di 3 post nella stessa categoria, riceverai meno di 3 post.

Questo è tutto! Ora sai come interrogare qualsiasi post desideri. La pagina della documentazione di WP_Query è estremamente utile per modificare la tua query, perché qui ci sono davvero possibilità illimitate. Ti incoraggio a giocare con i parametri e forse provare a creare una parte del modello separata da utilizzare per i post correlati.

Fonte di registrazione: awhitepixel.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More