Tutorial WordPress affidabili, quando ne hai più bisogno.
Guida per principianti a WordPress
WPB Cup
25 Milioni+
Siti web che utilizzano i nostri plugin
16+
Anni di esperienza con WordPress
3000+
Tutorial WordPress di esperti

Come escludere l'ultimo post dal loop dei post di WordPress

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.

Come 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:

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.

Aggiungere snippet di codice personalizzati a WordPress

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.

Fai clic sul pulsante Aggiungi snippet personalizzato

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

Seleziona Snippet PHP come tipo di codice

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

Escludere l'ultimo blog dal loop dei post di WordPress

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’.

Inserire automaticamente codice in un sito WordPress

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.

Escludere l'ultimo blog dal loop dei post di WordPress utilizzando WPCode

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.

Impostazioni del sito Bluehost

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.

Accedere al file manager di un sito web in Bluehost

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’.

Apertura del file index.php nel file manager di Bluehost

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:

Aggiunta di codice per escludere l'ultimo post 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:

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.

Dichiarazione: Il nostro contenuto è supportato dai lettori. Ciò significa che se fai clic su alcuni dei nostri link, potremmo guadagnare una commissione. Vedi come è finanziato WPBeginner, perché è importante e come puoi supportarci. Ecco il nostro processo editoriale.

Il Toolkit WordPress Definitivo

Ottieni l'accesso GRATUITO al nostro toolkit - una raccolta di prodotti e risorse relative a WordPress che ogni professionista dovrebbe avere!

Interazioni del lettore

41 CommentsLeave a Reply

  1. 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:

  2. 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?.

    • applica una classe alla li in base al numero della pagina e un contatore & dai stile a p1c1 come display:none;

  3. 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?

    • 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

  4. Grazie per l'ottimo consiglio. Avevo passato ore a cercare di capirlo e tu l'hai reso così semplice!

  5. 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.

  6. ciao, ho solo una domanda, quando faccio questo, la paginazione non funziona più, come posso risolvere questo?

    grazie, a parte questo, funziona perfettamente!!

    saluti!

    • Yes, pagination not working. you have found any working solution for pagination, I am still searching .. :(

        • 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()

  7. C'è un modo per escludere un post da una categoria?

    Ad esempio, voglio mostrare tutti i post tranne l'ULTIMO post della categoria x

  8. “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. :(

  9. 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!

  10. 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!

      • 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!

        • 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 :)

  11. 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 :)

    • 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

Lascia una risposta

Grazie per aver scelto di lasciare un commento. Tieni presente che tutti i commenti sono moderati secondo la nostra politica sui commenti, e il tuo indirizzo email NON verrà pubblicato. Si prega di NON utilizzare parole chiave nel campo del nome. Avviamo una conversazione personale e significativa.