Codice wordpress: mostrare gli ultimi articoli di una determinata categoria o tag

Nel fare la revisione del tema del mio blog, ho voluto personalizzare un pochino l’homepage; per farlo, ho ricercato su internet del codice che mi permettesse di raggruppare determinati articoli secondo i criteri che volevo io. Credo che questi codici possano essere utili anche ad altre persone come lo sono stati per me; riuscire a rintracciarli non è stato semplice; perciò ho deciso di condividerli, sperando di far risparmiare tempo a chi si trova nella mia situazione.

Il primo codice permette di vedere gli ultimi articoli di un determinato tag, più il loro relativo riassunto (excerpt) in un elenco non ordinato:  

<ul><?php $myposts = get_posts('numberposts=6&tag=miotag');
 foreach($myposts as $post) : ?>
 <li> <a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a> <?php the_excerpt(); ?> </li>
 <?php setup_postdata($post); ?>
 <?php endforeach; ?>
 </ul>

Alla prima riga, sostituisci miotag con il tag che vuoi tu. Per avere gli ultimi articoli di una categoria, basta sostituire tag con category e poi mettere il numero o nome della categoria che ti interessa.

Altre modifiche che si possono fare:

  1. Questo codice, così come è scritto, mostra gli ultimi 6 articoli: per cambiare il numero basta sostituire il 6 dopo numberposts con un numero a scelta.
  2. Per togliere il riassunto, eliminare  <?php the_excerpt(); ?> dal codice; l’elenco sarà così composto solo dai titoli degli articoli.

lista ultimi postNell’immagine a fianco (clic per ingrandire), si può vedere il risultato che produce il codice in abbinamento ad un minimo di CSS.

Ho usato questo codice nella mia homepage per creare un box con gli ultimi migliori articoli del blog. Per questo scopo, ho prima aggiunto il tag ‘best’ agli articoli che reputo più interessanti.

Ho preso ispirazione e struttura base del codice da questo articolo, davvero utilissimo:
Visualizzare gli ultimi post di una categoria

27 thoughts on “Codice wordpress: mostrare gli ultimi articoli di una determinata categoria o tag

  1. Pingback: I migliori post della settimana #43 | EmaWebDesign :: Web Programming / Web Design / SEO

  2. Ciao,
    e se invece del tag vorrei mostrare solo articoli di una determinata categoria come dovrei procedere?
    Grazie mille

  3. Ciao James, l’ho scritto, ma forse non sono stata abbastanza chiara. In pratica, devi scrivere lo stesso codice, solo sostituisci la prima riga con questa:

      < ?php $myposts = get_posts('numberposts=6&category=miacategoria');

    Al posto di 'miacategoria', naturalmente, scrivi il nome della categoria che vuoi tu, e il gioco è fatto! ;)

  4. Ciao Alessio, bene, mi fa piacere che ti sia stato utile il post. Bello il tuo sito sul calcio! ;)

  5. Bell’articolo, ma potresti darmi una dritta sul dove inserire questo codice? Ho il tema Eco Pagelines e vorrei capire in quale parte di codice di quale file dovrei inserire queste istruzioni?
    Grazie mille, saluti.
    Marco

  6. Ciao Marco, il codice può essere inserito dove vuoi tu: nella Homepage, o anche nella Sidebar… Per inserirlo in Homepage, leggi questo articolo, in cui ho descritto la procedura da seguire per personalizzare la propria Homepage e inserire nuovi elementi. Magari prima fai delle prove in locale, per sicurezza! :)

  7. Grazie mille, ora ho capito, pensavo fosse più complicato.
    Ti faccio un’altra domanda anche se esula dall’articolo. Vorrei che il mio menu orizzontale rimanesse fisso e non andasse via nel momento in cui un utente clicca su un articolo: è una cosa fattibile? Grazie ancora, ciao.
    Marco

  8. @Marco: credo di sì; in teoria, basta fare così:
    1) Trovare, all’interno del template, il file php della pagina iniziale (in genere si chiama Index.php) e individuare al suo interno la porzione di codice che corrisponde al menu orizzontale;
    2) Copiare quel codice e incollarlo dentro un altro file del template, quello che corrisponde ai singoli articoli (in genere si chiama single.php).

  9. @Elisa: ho trovato sub_head.php e sub_nav.php, ma non sono certo di quale sia la porzione di codice da incollare su single.php (che tra l’altro già richiama sub_head).
    Disposta a darmi un aiutino? Anche lunedì :))
    Ciao, buon weekend.

  10. Ho risolto…grazie! Ho semplicemente cancellato un blocco da sub_head e funziona perfettamente. Grazie ELisa, ciao!

  11. @Marco: scusami se ti ho risposto solo ora, ma vedo con piacere che sei già arrivato da solo alla soluzione del problema. Ottimo! :) Buon blogging!

  12. Ciao stavo usando il tuo plugin volevo chiederti come faccio ad inserire il codice che dice se si trova all’ultimo post aggiungi la class last al
    un’altra cosa come faccio a spezzare automaticamente il posto facendo comparire la scritta leggi tutto?
    Grazie mille per la risposta e complimenti per il blog

  13. @Mario: Ciao Mario, per spezzare il post devi inserire il tag ‘More’. Si fa così: quando tu stai scrivendo l’articolo nell’editor, se guardi sopra c’è tutta una fila di iconcine; tra queste ce n’è una che rappresenta un foglio spezzato; quando vuoi interrompere un articolo, fai clic col mouse nel punto in cui vuoi che ci sia l’interruzione, e poi fai clic su quella iconcina; vedrai che apparirà una linea tratteggiata. Poi salva l’articolo e pubblicalo; a quel punto vedrai che in Homepage apparirà solo la prima parte.
    Per quanto riguarda l’altro quesito, mi spiace ma non ho capito bene cosa vuoi fare; puoi spiegarmi meglio, per favore?

  14. Ciao, ho provato il tuo codice e ho riscontrato un piccolo problema: il titolo è stampato correttamente ma il riassunto dell’articolo (the_excerpt() ) è quello del post precedente.
    Per risolvere il problema, a quanti dovesse capitare, suggerisco di spostare:

    appena prima di:
    <a href="…….
    Spero di essere stato d'aiuto ai visitatori di questo simpatico e gradevole sito.

  15. Ops…non vengono visualizzate le porzioni di codice php nei commenti!Proviamo così: bisogna spostare la riga:

    nel posto dove vi ho detto

  16. Ciao!!! Davvero ottimo il tuo codice!
    Se volessi aggiungere una thumb … ?

  17. @Alex: grazie di aver notato questo problema e di aver anche trovato la soluzione! :)
    @Carlotta: non saprei dirti di preciso, ma credo che la soluzione non sia difficile se conosci bene il codice php. Dovresti documentarti qui, dove è descritta la funzione thumbnails:
    http://codex.wordpress.org/Post_Thumbnails

  18. Ciao, qualcuno saprebbe dirmi come togliere il riassunto sotto il titolo degli articoli, quando si clicca su una categoria?

    Poi, l’elenco degli articoli il mio tema lo mette in 2 o più pagine. A me piacerebbe mettesse l’elenco degli articoli delle categorie in una sola pagina lunghissima si ma non m’importa. Grazie milleeeeeeeeee a chi vorrà aiutarmi… In pratica vorrei sapere il codice e in quale sezione metterlo esattamente perchè sono a digiuno di informatica :/

  19. @Francesco: Ciao Francesco, si può togliere il riassunto sotto i titoli degli articoli; il come, però, dipende nello specifico dal tuo tema. Dovresti fare delle modifiche ai file del template; dovresti perciò andare in Aspetto>Editor e cercare un file chiamato ‘template categorie’ (category.php); qui dovresti modificare alcune parti del file, in particolare una funzione; ma capisco che potrebbe non essere così semplice individuare cosa cambiare. La parte di codice responsabile di far apparire il riassunto è questa:
    < ?php the_excerpt(); ?>
    Se vuoi provare a fare modifiche, mi raccomando, prima fai un bel backup del tuo tema, così puoi ripristinarlo se per caso qualcosa non va!
    Per quanto riguarda la divisione in due o più pagine degli articoli… se vuoi evitarla, prova a fare così:
    Impostazioni>Lettura
    Dove c’è scritto “le pagine del blog visualizzano al massimo…” Metti un numero molto alto (1000).
    Dovrebbe funzionare.

  20. Ok allora chiedo al fabbricante del tema, che l’ultima volta mi ha rimproverato perchè alcune cose dovrei imparare afarmelo da solo! :/ Beh ora gli dirò: “ci ho provato infatti so che devo cercare su category.php :) wow sembrerò un professionista.
    Il secondo tuo consiglio invece ha funzionato benissimo, se gli avessi chiesto questo mi avrebbe rimproverato ancora! Ascolta però alla fine della pagina della lista degli articoli (sempre unica, adesso) compare il conto: “pagina 1 di 1”. Essendo sempre una in ognunque caso, conosci esattamente la stringa di codice per togliere questo inutile conteggio?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *