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 nascondere i post protetti da password dal loop di WordPress

Abbiamo sentito diversi lettori che sono rimasti sorpresi nello scoprire che la protezione tramite password di WordPress non è così privata come sembra.

Certo, il contenuto è bloccato da una password. Ma i titoli dei post compaiono ancora sulla tua homepage, sulle pagine delle categorie e nei risultati di ricerca.

È come chiudere a chiave un diario ma lasciare i nomi dei capitoli in bella vista. 😱

Questo è un problema se gestisci un sito di membership o condividi informazioni aziendali sensibili. Non solo ha un aspetto disordinato, ma suggerisce anche cosa è nascosto dietro le quinte. Alcuni visitatori curiosi potrebbero persino provare ad accedere al contenuto solo perché sanno che c'è.

Fortunatamente, ci sono modi per nascondere completamente questi post alla vista del pubblico.

In questa guida, ti mostrerò i modi migliori per mantenere il tuo contenuto privato veramente privato. Abbiamo testato diversi metodi per rimuovere i post protetti da password dai loop di WordPress, senza compromettere il tuo sito o bloccare l'accesso alle persone che ne hanno bisogno. 🙌

Come nascondere i post protetti da password dal loop di WordPress

Perché nascondere i post protetti da password in WordPress?

Per impostazione predefinita, WordPress visualizza un post protetto da password con il suo titolo e il prefisso 'protetto'. Gli utenti devono inserire la password per visualizzare il contenuto del post.

Questo prefisso del post è visibile sulla homepage, negli archivi, nei widget degli ultimi post e in altre aree.

Post protetti da password visualizzati sulla homepage

Se vuoi mantenere alcuni contenuti completamente privati, questo non è l'ideale per diverse ragioni.

Gli utenti che non hanno password possono comunque vedere il titolo del post, il che potrebbe essere un problema di per sé. Possono anche tentare di accedere al contenuto con un attacco brute-force. Come tutti sappiamo, le password possono essere violate.

Tenendo conto di ciò, ti mostreremo come nascondere i tuoi post protetti da password dal loop di WordPress in modo che altri utenti non possano vederli. Ecco una rapida panoramica di tutti i passaggi che intraprenderai:

Iniziamo subito!

Passaggio 1. Installa un plugin per snippet di codice

Per apportare modifiche specifiche al tuo sito, alcuni esperti di WordPress potrebbero dirti di aggiungere uno snippet di codice personalizzato al file functions.php del tuo tema.

Non raccomandiamo questo metodo perché non è molto adatto ai principianti e rischi di danneggiare il tuo sito web. Invece, puoi utilizzare un plugin per snippet di codice, come WPCode, per svolgere il lavoro.

WPCode è il miglior plugin per snippet di codice sul mercato. Alcuni dei nostri marchi partner lo utilizzano per aggiungere e gestire snippet di codice personalizzati sui loro siti web e lo hanno apprezzato molto.

Puoi trovare maggiori informazioni sul plugin nella nostra recensione completa di WPCode.

Homepage di WPCode

La parte migliore è che puoi utilizzare la versione gratuita di WPCode per aggiungere uno snippet di codice personalizzato al tuo sito WordPress.

Quindi, per prima cosa, procedi all'installazione e all'attivazione del plugin gratuito WPCode. Se hai bisogno di aiuto con il processo, consulta la nostra guida su come installare un plugin di WordPress.

🧑‍💻 Suggerimento dell'esperto: Sblocca funzionalità avanzate come la cronologia completa delle revisioni, la pianificazione del codice e l'accesso a oltre 100 snippet di codice approvati da esperti acquistando la versione premium di WPCode.

Passaggio 2. Nascondi i post protetti da password in WordPress

Una volta attivato il plugin, naviga su Snippet di codice » + Aggiungi snippet dalla tua area di amministrazione di WordPress.

Quindi, fai semplicemente clic sul pulsante 'Aggiungi snippet personalizzato' nella sezione 'Aggiungi il tuo codice personalizzato (Nuovo snippet)'.

Aggiungere codice personalizzato in WPCode

Nella schermata successiva, dovrai scegliere il tipo di codice per il tuo snippet personalizzato.

Per questo tutorial, dovremo utilizzare l'opzione 'Snippet PHP'.

Scelta di PHP Snippet come tipo di codice

Verrai quindi reindirizzato all'editor di snippet di codice personalizzato.

Da qui, vorrai prima nominare lo snippet personalizzato. Ti consigliamo di utilizzare un nome chiaro, come 'Nascondi post protetti da password'. Questo renderà più facile organizzare i tuoi snippet di codice in seguito.

Successivamente, aggiungi semplicemente il seguente codice nella casella 'Anteprima codice':

function wpb_password_post_filter( $where = '' ) { if (!is_single() && !is_admin()) { $where .= " AND post_password = ''"; } return $where; } add_filter( 'posts_where', 'wpb_password_post_filter' ); 

Questo codice modifica la query inviata a WordPress utilizzando il filtro posts_where. Chiede a WordPress di recuperare tutti i post che non hanno una password.

Ecco come appare nell'editor:

Anteprima del codice per nascondere i post protetti da password

A questo punto, dovrai attivare l'interruttore da 'Inattivo' ad 'Attivo'.

Quindi, procedi e fai clic su 'Salva snippet'.

Salvataggio dello snippet per nascondere i post protetti da password

Per impostazione predefinita, WPCode applicherà automaticamente lo snippet di codice ovunque sul tuo sito WordPress.

Ora, se visiti il tuo sito web, vedrai che i post protetti da password non saranno più visibili nella homepage, negli archivi o nei widget come ultimi post.

Post protetti nascosti

Tieni presente che puoi comunque visitare il post accedendovi tramite un URL diretto.

Suggerimento bonus: consentire l'accesso ai post protetti per utenti specifici

L'esempio sopra nasconde i post protetti da password a tutti gli utenti. Ma cosa succederebbe se gestissi un sito WordPress multi-autore e volessi che i post protetti fossero visibili agli utenti con la capacità di modificare post privati?

Modifica semplicemente il codice sopra con un altro tag condizionale come questo:

function wpb_password_post_filter( $where = '' ) { if (!is_single() && !current_user_can('edit_private_posts') && !is_admin()) { $where .= " AND post_password = ''"; } return $where; } add_filter( 'posts_where', 'wpb_password_post_filter' ); 

In questo esempio, controlliamo se un utente non può modificare i post protetti da password e mostriamo solo i post che non hanno password.

Facendo ciò, tutti gli utenti di WordPress con ruoli di amministratore ed editor vedranno i post protetti da password sul front-end del tuo sito.

Domande frequenti sulla visualizzazione dei post protetti da password in WordPress

Ti chiedi cosa succede quando nascondi i post protetti da password? Ecco alcune domande comuni che riceviamo dai lettori, insieme a risposte chiare per aiutarti a decidere se questo approccio è giusto per il tuo sito.

Perché dovrei voler nascondere i post protetti da password in WordPress?

Nascondere i post protetti da password aiuta a mantenere il tuo sito pulito e professionale. Impedisce inoltre ai visitatori non autorizzati di vedere che esiste contenuto privato, riducendo il rischio di tentativi di accesso e mantenendo il tuo sito più sicuro.

Posso nascondere i post protetti da password senza usare codice?

Sì! Mentre WordPress offre impostazioni di privacy di base, l'utilizzo di un plugin come WPCode rende il processo più semplice e affidabile, soprattutto se non ti senti a tuo agio a modificare il codice. Ti dà più controllo senza la necessità di competenze tecniche.

Nascondere questi post influenzerà la visibilità per gli utenti autorizzati?

Assolutamente no. Gli utenti autorizzati, come i membri registrati o gli utenti con ruoli specifici, possono comunque accedere direttamente ai post. Purché abbiano la password corretta o le autorizzazioni necessarie.

WPCode è l'unico plugin che può aiutare in questo?

WPCode è una delle opzioni più semplici e affidabili, motivo per cui lo consigliamo. Detto questo, ci sono altri plugin disponibili. Assicurati solo di sceglierne uno ben mantenuto e compatibile con il tuo tema e altri strumenti.

Nascondere i post protetti da password influenzerà la SEO del mio sito?

Nascondere questi post dalla tua homepage o dagli archivi non danneggerà la tua SEO. Anzi, può migliorarla mantenendo i tuoi contenuti pubblici più focalizzati e pertinenti per i motori di ricerca.

Speriamo che questo articolo ti abbia aiutato a nascondere i post protetti da password dal loop di WordPress sul tuo sito. Potresti anche voler consultare il nostro tutorial su come modificare il prefisso dei post privati e protetti in WordPress e la nostra guida sui diversi modi per proteggere i contenuti in 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

17 CommentsLeave a Reply

  1. Ha funzionato benissimo per il feed principale; grazie! Ho un problema simile a quello di Mark (qualche commento più su), ma con il widget Post Recenti. I post protetti da password vengono ancora visualizzati nell'elenco dei Post Recenti.

        • Dovrebbe nascondere i post protetti da password dal tuo widget post recenti. Se hai la cache sul tuo sito, assicurati di svuotarla nel caso in cui tu stia vedendo le informazioni memorizzate nella cache per il widget. L'altra possibilità è che qualcosa stia modificando la query utilizzata dal widget, oltre al nostro codice.

  2. Grazie per aver spiegato come farlo *davvero* nel codice; non me lo aspettavo da un sito chiamato "wpbeginner.com"! (Funziona ancora nel 2024 e con WP 6.5.2, tra l'altro.)

    Molti siti fingono di offrire soluzioni ma in realtà vogliono che tu usi il loro plugin che complica eccessivamente qualcosa di semplice e lascia il tuo sito esposto a qualsiasi vulnerabilità possano introdurre e non correggere mai.

    • It would depend on the site and plugin as plugins can be for simply adding the same code as code from an article without needing to know how to edit files which is why sites recommend them. Glad you found our site and guide helpful :)

      Amministratore

  3. Grazie mille ragazzi. Questo mi ha davvero aiutato. Lo apprezzo. Per favore, continuate a pubblicare altri post di questo tipo che non richiedano l'uso di un plugin.

    • Quando sarà disponibile una soluzione senza plugin, ci assicureremo di provare a includerla.

      Amministratore

  4. Ho creato un plugin specifico per il sito e ho seguito questi passaggi e ha funzionato per nascondere il mio post nella pagina "Post" del mio sito. Tuttavia, il post è ancora visibile in un widget "Post Correlati" per ogni singolo post. (Molto simile all'immagine che hai sopra, tuttavia il mio post protetto da password è ancora visibile.)

    C'è qualcosa che posso fare per risolvere questo problema?

  5. Volevo apportare una mia modifica al codice per mostrare i post se potessi leggere_private_posts.

    function remove_password_protected_posts( $where = "" ) { if (!is_single() && !current_user_can(‘read_private_posts’) && !is_admin() ) { $where .= " AND post_password = ""; } return $where; } add_filter( ‘posts_where’, ‘remove_password_protected_posts’ );

    Ottimo post come al solito. Grazie.

  6. Ciao ragazzi

    Ho creato un plugin specifico per il sito con il seguente codice:

    Se provo ad allegare una galleria nextgen al mio post, la galleria non viene caricata, non appena disabilito il plugin, la galleria nextgen torna alla normalità.

    Cordiali saluti

  7. Grazie per questo snippet. Molto utile!

    Per quanto riguarda l'occultamento di questi post dal feed RSS, mi sono imbattuto in questo snippet.

    function rss_filter_protected($query) { if ($query->is_feed) { add_filter('posts_where', 'rss_filter_password_where'); } return $query; } add_filter('pre_get_posts','rss_filter_protected');

  8. Grazie per questo ottimo consiglio!
    Ma questi post sono nascosti dal loop con il tuo snippet di codice anche nascosti dal feed RSS?

Lascia una risposta