Quando aiutiamo gli utenti a configurare i loro blog WordPress, ci viene spesso chiesto di personalizzare il layout, in particolare come far risaltare l'ultimo post.
A volte, non vuoi che l'ultimo post si fonda semplicemente con il resto del feed del blog. Potresti avere in mente un design speciale o aver bisogno che appaia in una posizione completamente diversa.
È qui che entra in gioco l'esclusione dell'ultimo post dal loop dei post di WordPress. Questo ti dà la flessibilità di visualizzare quel contenuto recente come preferisci. In questa guida, ti mostreremo due modi per escludere l'ultimo post dal loop dei post di WordPress.

Perché escludere l'ultimo post dal loop dei post di WordPress?
Per impostazione predefinita, WordPress visualizza i tuoi post del blog ai visitatori in ordine cronologico inverso, quindi i post più recenti appaiono per primi. Tuttavia, potresti voler cambiare l'aspetto dell'ultimo post sulla tua homepage personalizzata o sulla pagina di archivi di WordPress.
Escludendo l'ultimo post dal loop dei post di WordPress, puoi mostrare quel contenuto in una posizione diversa e persino aggiungere il tuo stile personalizzato.
Detto questo, vediamo come puoi nascondere l'ultimo post del blog escludendolo dal loop dei post di WordPress. Usa semplicemente i collegamenti rapidi qui sotto per passare direttamente al metodo che desideri utilizzare:
- Metodo 1: Utilizzo del plugin WPCode (Consigliato)
- Metodo 2: Modifica dei file del tema di WordPress (Nessun plugin richiesto)
- Scopri altri suggerimenti e trucchi per gestire i tuoi post di WordPress
Metodo 1: Utilizzo del plugin WPCode (Consigliato)
Il modo più semplice per escludere l'ultimo post dal loop dei post è aggiungere codice al tuo sito WordPress.
Alcune guide ti diranno di modificare manualmente i file del tema, ma questo può causare errori comuni di WordPress e potrebbe persino compromettere completamente il tuo sito web.
Per questo motivo, ti consigliamo di utilizzare WPCode. È il miglior plugin per snippet di codice che rende facile aggiungere codice personalizzato in WordPress senza mettere a rischio il tuo sito.
Innanzitutto, dovrai installare e attivare il plugin gratuito WPCode. Per maggiori informazioni, consulta la nostra guida passo passo su come installare un plugin WordPress.
Una volta attivato il plugin, vai su Snippet di codice » + Aggiungi snippet.

Qui vedrai tutti gli snippet predefiniti che puoi aggiungere al tuo sito. Questi includono uno snippet che ti permette di disabilitare completamente i commenti, caricare tipi di file che WordPress normalmente non supporta, disabilitare le pagine di allegato, e molto altro.
Ora puoi passare il mouse sopra l'opzione 'Aggiungi il tuo codice personalizzato (Nuovo snippet)' e fare clic sul pulsante '+ Aggiungi snippet personalizzato' quando appare.

Successivamente, scegli 'Snippet PHP' come tipo di codice dall'elenco delle opzioni mostrate sullo schermo.

Nella pagina successiva, digita un titolo per lo snippet di codice. Questo è solo per tuo riferimento, quindi puoi usare quello che vuoi.

Fatto ciò, incolla semplicemente quanto segue nella casella ‘Anteprima codice’:
<?php
function wpsites_exclude_latest_post( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( 'offset', '1' );
}
}
add_action( 'pre_get_posts', 'wpsites_exclude_latest_post', 1 );
Dopodiché, scorri la pagina fino alla sezione ‘Inserimento’.
Se non è già selezionato, scegli ‘Inserimento automatico’ e ‘Esegui ovunque’.

Infine, scorri fino in cima alla schermata e fai clic sul cursore ‘Inattivo’ in modo che mostri ‘Attivo’.
Quindi, fai semplicemente clic sul pulsante ‘Salva snippet’ o ‘Aggiorna’ per rendere attivo lo snippet di codice.

Ora, se visiti il tuo sito WordPress, l'ultimo post del blog sarà nascosto.
Metodo 2: Modifica dei file del tema di WordPress (Nessun plugin richiesto)
Note: Questo tutorial funzionerà solo con i temi WordPress classici, poiché i temi a blocchi hanno un set diverso di file del tema. Se utilizzi un tema a blocchi, ti suggeriamo di utilizzare il primo metodo.
Ti consigliamo inoltre di eseguire prima il backup del tuo sito web e/o utilizzare un ambiente di staging per prevenire errori durante il seguire questo metodo.
Un altro modo per escludere l'ultimo post dal loop dei post di WordPress è aggiungere codice ai file del tuo tema WordPress.
Questo ottiene un risultato simile al codice sopra, ma dovrai aggiungerlo direttamente al loop di WordPress dove vuoi che venga visualizzato.
Ad esempio, se vuoi cambiare il loop dei post in tutto il tuo sito web, dovrai aggiungere il codice al tuo file index.php.
Sii solo consapevole che l'aggiunta di codice direttamente ai tuoi file WordPress può potenzialmente causare problemi con la paginazione sul tuo blog WordPress.
Innanzitutto, devi aprire il file manager del tuo provider di hosting WordPress o connettere il tuo sito web con un client FTP.
Per questo tutorial, utilizzeremo il file manager di Bluehost poiché il processo è molto più semplice rispetto all'uso di un FTP. Detto questo, i passaggi sono più o meno gli stessi indipendentemente dal fatto che tu utilizzi un FTP o un altro web host.
Se sei un utente Bluehost, accedi alla dashboard del tuo account di hosting e naviga nella scheda ‘Websites’. Quindi, fai clic su ‘Settings’ sul sito web che desideri modificare.

Ora, vai alla sezione Quick Links.
Quindi, fai clic sul pulsante ‘File Manager’. Bluehost ti mostra anche la directory principale del tuo sito web, se ne hai bisogno.

Una volta all'interno del file manager, devi individuare il file che desideri modificare. Supponiamo che tu voglia aggiungere il codice a index.php, lo troverai nella cartella del tuo tema corrente, che si trova all'interno di public_html/wp-content.
Una volta lì, fai semplicemente clic destro sul file index.php e fai clic su ‘Edit’.

Ora, dovrai copiare il seguente codice e aggiungerlo al tuo loop di WordPress:
query_posts('posts_per_page=6&offset=1');
Questo codice dice al loop di mostrare solo 5 post dopo il post più recente.
Dovrai aggiungere il codice direttamente sopra il tuo loop di WordPress in modo che assomigli allo snippet di codice qui sotto:
<?php
query_posts('posts_per_page=6&offset=1');
if ( have_posts() ) {
// Load posts loop.
while ( have_posts() ) {
the_post();
get_template_part( 'template-parts/content/content', get_theme_mod( 'display_excerpt_or_full_post', 'excerpt' ) );
}
// Previous/next page navigation.
twenty_twenty_one_the_posts_navigation();
} else {
// If no content, include the "No posts found" template.
get_template_part( 'template-parts/content/content-none' );
}
Ecco come appare il nostro codice nel file manager di Bluehost:

Una volta aggiunto il codice, fai semplicemente clic sul pulsante ‘Save Changes’.
Quindi, procedi e visualizza in anteprima il tuo sito web WordPress.
Scopri altri suggerimenti e trucchi per gestire i tuoi post di WordPress
Vuoi ottimizzare ulteriormente il tuo blog WordPress? Dai un'occhiata a queste guide:
- Come reindirizzare gli utenti a un post casuale in WordPress
- Come visualizzare post correlati in WordPress (Passo dopo passo)
- Come riordinare facilmente i post in WordPress (passo dopo passo)
- Come modificare il numero di post visualizzati nella pagina del tuo blog WordPress
- Come visualizzare qualsiasi numero di post in un loop di WordPress
- Come spostare in blocco post in categorie e tag in WordPress
Speriamo che questo articolo ti abbia aiutato a imparare come escludere l'ultimo post dal loop di WordPress. Potresti anche voler consultare la nostra guida su come aggiungere post e pagine in blocco in WordPress e le nostre scelte esperte dei migliori plugin per post correlati per WordPress.
Se ti è piaciuto questo articolo, iscriviti al nostro canale YouTube per tutorial video su WordPress. Puoi anche trovarci su Twitter e Facebook.

George
Questo pezzo di codice ha aiutato a risolvere il 90% di un problema sul mio blog.
Supporto WPBeginner
Glad to hear our code was able to help
Amministratore
ghazali
C'è un modo per rimuovere solo i primi 3 post in evidenza dalla homepage?
ivan logan
Come rimuovere tutti i post senza immagini in evidenza (miniature), ne ho 9000 da rimuovere!
Praveen
Grazie, buon lavoro, buona soluzione
Matt
Bel post! Semplice, chiaro e MOLTO utile. Complimenti!
Dimarj
BGH_
Ehi ragazzi, grazie per questo articolo! Voglio implementarlo, ma ogni volta che ci provo ho un problema strano: le voci sembrano esattamente come la homepage, mostrando un elenco di post recenti piuttosto che il post stesso. Il mio codice è leggermente diverso, dato che è uno SMTheme. Qualsiasi aiuto sarà molto apprezzato. PS: scusa per aver postato due volte, ma il codice è stato stampato male. Eccolo:
space
La soluzione funziona bene, grazie. ma la paginazione si è rotta dopo aver applicato questo codice, ho provato ma non sono riuscito a far funzionare la paginazione corretta. Qualche soluzione per la paginazione?.
Rickie Anand
applica una classe alla li in base al numero della pagina e un contatore & dai stile a p1c1 come display:none;
Sabi Maharjan
Ho usato due plugin. Uno è “Recent facebook post” per mostrare i post recenti in wordpress e “Facebook publish page” per pubblicare i miei post di wordpress su facebook. Ora voglio escludere il post recente di facebook che era già stato pubblicato dai miei post di wordpress.
Come posso farlo?
Supporto WPBeginner
Per questo, il tuo plugin che pubblica contenuti dalla tua pagina Facebook dovrebbe avere un controllo per vedere se un post è già stato pubblicato da WordPress a Facebook. Non raccomandiamo agli utenti di modificare direttamente i file del plugin. Tuttavia, se ti senti a tuo agio a modificare file php, puoi fare un fork del plugin come nuovo plugin e quindi aggiungere il codice per realizzarlo.
Amministratore
Pastor Wynn
Grazie per l'ottimo consiglio. Avevo passato ore a cercare di capirlo e tu l'hai reso così semplice!
Gu-ens
Grazie mille.
l'opzione 'post__not_in' non funziona in wordpress 3.5
Jim
Hmm, quando ho provato questo codice su un loop di pagina categoria, non è riuscito a mantenere i post solo per quella categoria, invece si è comportato come se fosse il loop della pagina principale e ha visualizzato tutti i post.
Amin
Grazie mille amico! Questo ha aiutato molto!
Cordiali saluti!
Fernando
Grazie mille!! consiglio molto utile!
GangeshMatta
Grazie!
PabloCovarrubias
ciao, ho solo una domanda, quando faccio questo, la paginazione non funziona più, come posso risolvere questo?
grazie, a parte questo, funziona perfettamente!!
saluti!
space
Yes, pagination not working. you have found any working solution for pagination, I am still searching ..
Kev Bowman
Hai mai trovato una soluzione per questo?
de hams
la paginazione non funziona sulla pagina indice per la maggior parte, quindi possiamo creare la nostra chiamata di paginazione ajax e per lo più query_posts() funziona per la paginazione piuttosto che WP_Query()
Jon
Grazie mille per questo! Non riuscivo a capirlo affatto ma questo ha funzionato perfettamente.
Wordpwess
C'è un modo per escludere un post da una categoria?
Ad esempio, voglio mostrare tutti i post tranne l'ULTIMO post della categoria x
Staff editoriale
Sì, puoi semplicemente selezionare il parametro category_in e aggiungere l'ID della tua categoria.
Amministratore
Luka
Thanks mate, you save my day
Khurram
“query_posts(‘posts_per_page=6&offset=1’);” this is not worked for me , while i am using the WP-PageNavi plugin for page navigation.
Staff editoriale
quale errore stai riscontrando?
Amministratore
Ken
Thanks for the info. Worked well
Though, I’m encountering another issue for another site I’m currently doing. Is there a way to exclude from the loop only the latest post of a particular category?
Il fatto è che ho un blog che pubblica podcast. La pagina principale mette in evidenza il podcast più recente – i post vengono pubblicati sotto la categoria: Podcast – con uno stile proprio. Allo stesso tempo, la pagina principale mostra anche gli ultimi 5 post più recenti, tra cui potrebbero esserci post sotto la categoria "podcast". Semplicemente non voglio mostrare nel loop il post più recente pubblicato sotto "Podcast" perché è già in evidenza con il suo stile. Spero tu possa aiutarmi. grazie!
Staff editoriale
Puoi escludere tutti i post dalla categoria "postcast" dal tuo loop, se vuoi. Ma non c'è un modo semplice per escludere solo l'ultimo post.
Amministratore
Joffrey
Grazie per il suggerimento!
Ma mi stavo chiedendo se c'è anche un modo per escludere il post che viene attualmente visualizzato sullo schermo.
Se sì, puoi dirmi come fare?
Grazie in anticipo!
Staff editoriale
Non capisco bene la tua domanda? Quale schermo?
Amministratore
Joffrey
Una delle mie pagine visualizza innanzitutto l'ultimo o il post corrente che l'utente sta visualizzando.
Il post corrente viene chiamato dal loop.
Sotto questo post voglio visualizzare gli estratti di altri post precedenti senza il post corrente visualizzato in questo elenco.
Gli estratti dei post precedenti vengono chiamati da query_posts:
query(‘showposts=3&cat=5’);
while($previousPosts->have_posts()) : $previousPosts->the_post();
?>
Come puoi vedere, richiamo 3 post (estratti) dalla categoria 5, che visualizza tre post dalla categoria News. Questo sembra a posto, ma all'interno di questi 3 estratti di post, anche il post corrente richiamato dal loop è in questa lista.
Sai un modo per escludere il post corrente da questa lista?
Grazie ancora!
Staff editoriale
Puoi aggiungere offset=1 nella query per saltare il primo post.
Joffrey
Grazie ancora per la rapida risposta!
Tuttavia, ho provato l'offset=1 nella query, l'unica cosa è che quando si preme un post più vecchio, si vede il post più vecchio nel ciclo principale, all'interno degli estratti dell'elenco l'ultimo post è escluso, ma il post più vecchio che ora è il post corrente è ancora nell'elenco degli estratti.
Hai idea di come escludere non l'ultimo, ma il post corrente?
Thanks so far already
Staff editoriale
Inviaci via email il link live al sito, così possiamo vedere esattamente cosa sta succedendo. Usa il modulo di contatto per l'email.
Bilal Ahmed
Thank you so much for this piece as i was looking for a way to exclude 4 latest posts form my home page and i got answer by this articles and i have replaced (query_posts(‘posts_per_page=6&offset=1’);) by query_posts(‘posts_per_page=6&offset=3’); and its done
Jeremy
Dove esattamente metti questo codice per rimuovere tutti i post tranne quelli in evidenza nella pagina principale.
Grazie,
Staff editoriale
Questo è un processo in più fasi. Per prima cosa avresti bisogno di un modello di pagina personalizzato. In secondo luogo, dovresti creare quella pagina personalizzata, la tua pagina principale. Quindi eseguiresti una query su quel modello personalizzato mostrando solo i post in evidenza.
Amministratore
dominik
Grazie, era esattamente quello che stavo cercando! Grazie per qualsiasi altro suggerimento.
Morning Copy
Grazie per questo. Bella soluzione per layout in stile rivista.