Ciao! Ti sarà capitato: hai una parte di contenuto, magari un link di download, una risorsa, un’area riservata, che vuoi mostrare solo a chi ha fatto login sul tuo sito, lasciando tutto il resto visibile a chiunque.
In questo articolo ti spiego come nascondere contenuti agli utenti non loggati in WordPress, sia il ragionamento dietro le diverse soluzioni possibili, sia un plugin che ho sviluppato io stesso proprio per risolvere questo problema in modo semplice.
Perché ti serve limitare contenuti agli utenti non registrati
I casi in cui questa esigenza salta fuori sono più comuni di quanto pensi:
- Vuoi dare accesso a materiale scaricabile (PDF, template, risorse) solo a chi si è registrato
- Hai un’area del sito riservata a clienti o membri di una community
- Vuoi nascondere un pulsante di download o un link specifico, lasciando il resto dell’articolo pubblico e indicizzabile da Google
- Stai costruendo un incentivo alla registrazione: mostri un’anteprima del contenuto a tutti, ma la parte “di valore” solo a chi si logga
Le opzioni che hai (e i loro limiti)
Prima di arrivare alla soluzione che uso io, vale la pena capire cosa c’è già in giro, perché non tutte le strade sono equivalenti.
Codice personalizzato in functions.php: la soluzione più “artigianale”. Funziona, ma richiede di intervenire sul tema con del codice PHP, e come ti ho spiegato anche nell’articolo sui temi Child, modificare direttamente functions.php senza le giuste precauzioni ti espone al rischio di perdere tutto al primo aggiornamento del tema.
Plugin di membership completi (Restrict Content Pro, MemberPress e simili): sono soluzioni potenti, pensate per chi vuole costruire un vero sistema di abbonamenti a pagamento, con livelli multipli, pagine dei prezzi, gestione degli iscritti. Se il tuo bisogno è molto più semplice, “nascondi questa parte di contenuto a chi non è loggato”, finisci per installare un plugin enormemente più complesso di quello che ti serve davvero, con tutto il peso e la superficie di attacco che si porta dietro.
Plugin che nascondono il contenuto solo con il CSS: qui c’è un problema di sicurezza che in pochi spiegano chiaramente. Molti plugin (e molte guide) si limitano a “sfocare” (blur) il contenuto con un filtro CSS. Il problema è che il contenuto resta comunque nell’HTML della pagina: basta che qualcuno visualizzi il codice sorgente, disattivi il CSS, o faccia una richiesta diretta alla pagina, e lo legge lo stesso. Va bene come leva di marketing per invogliare alla registrazione, ma non è una vera protezione per contenuti davvero sensibili.
La mia soluzione: Content Login Gate
Per questo motivo ho sviluppato Content Login Gate, un plugin gratuito che fa esattamente una cosa, e la fa bene: nasconde tutto il contenuto di un articolo o pagina, oppure solo una parte specifica, agli utenti che non hanno fatto login, mostrando al loro posto un pulsante personalizzabile per accedere.
La differenza principale rispetto a tante alternative è proprio quella che ti ho appena spiegato: puoi scegliere se sfocare il contenuto (blur, utile come leva di marketing) oppure rimuoverlo davvero dall’HTML per chi non è loggato. La seconda modalità è quella corretta se stai nascondendo qualcosa di realmente sensibile, come un link di download o dati riservati.
Le due modalità d’uso
1. Nascondere l’intero contenuto: dall’editor di un articolo o pagina, nel box “Accesso limitato” nella barra laterale, basta spuntare una casella. Tutto il contenuto viene gestito automaticamente.
2. Nascondere solo una parte: usando lo shortcode [cdfg_login_gate]...[/cdfg_login_gate] all’interno di un blocco “Shortcode” nell’editor a blocchi. Utile quando vuoi lasciare visibile tutto l’articolo e nascondere solo, ad esempio, il pulsante di download in fondo.
Come si installa e configura
- Vai su Plugin → Aggiungi nuovo nella bacheca del tuo sito, cerca “Content Login Gate” e installa il plugin (oppure scaricalo direttamente dalla pagina ufficiale su WordPress.org e caricalo manualmente)
- Attivalo dal menu Plugin
- Vai su Impostazioni → Content Login Gate per scegliere la modalità di visualizzazione (sfoca o nascondi) e personalizzare colore, testo del pulsante ed eventualmente l’URL della pagina di login, se usi una pagina di accesso diversa da quella predefinita di WordPress
- Per nascondere un intero articolo: apri l’editor, spunta “Richiedi il login per visualizzare il contenuto” nel box dedicato, e salva
- Per nascondere solo una parte: aggiungi un blocco Shortcode con
[cdfg_login_gate]testo o contenuto da nascondere[/cdfg_login_gate]
Un dettaglio a cui tengo particolarmente: il CSS del plugin viene caricato solo nelle pagine dove il gate è effettivamente attivo, quindi non appesantisce il resto del sito nemmeno di un byte.
Per chi lavora anche con codice: i filtri per sviluppatori
Se costruisci siti per clienti e ti serve personalizzare il comportamento oltre quello che offre già la pagina delle impostazioni, il plugin espone alcuni filtri PHP:
// Aggiunge il gate anche ai prodotti WooCommerce
add_filter( 'cdfg_clg_post_types', function( $post_types ) {
$post_types[] = 'product';
return $post_types;
} );
Di serie il box “Accesso limitato” compare solo su articoli e pagine, ma con cdfg_clg_post_types puoi estenderlo a qualsiasi altro tipo di contenuto personalizzato del tuo sito.
Domande frequenti
Il contenuto nascosto resta visibile nel feed RSS?
No, in nessuna delle due modalità. Nel feed, dove l’overlay CSS non ha senso, il plugin sostituisce sempre il contenuto con un breve avviso e un link alla pagina di login.
Funziona con qualsiasi tema?
Sì, il gate viene applicato tramite il filtro the_content e tramite lo shortcode, quindi funziona con qualsiasi tema che segue gli standard di WordPress per l’output dei contenuti.
Qual è la reale differenza tra “sfoca” e “nascondi”?
Con “sfoca”, il contenuto resta nell’HTML della pagina ed è nascosto solo visivamente via CSS: chi visualizza il sorgente, disattiva il CSS o interroga direttamente la pagina può comunque leggerlo. È pensato come leva di marketing, non come protezione vera. Con “nascondi”, il contenuto riservato non viene proprio incluso nell’HTML generato per chi non è loggato: al suo posto arriva solo il markup del pulsante. Usa questa seconda modalità per contenuti davvero sensibili.
Cosa succede ai dati del plugin se lo disinstallo?
Alla disinstallazione (non alla semplice disattivazione), il plugin rimuove i meta dei contenuti marcati come riservati e le opzioni salvate. Non crea tabelle nel database, quindi non lascia residui in giro.
Per chiudere
Se la tua idea è: “voglio nascondere questa parte di contenuto a chi non è loggato” e nient’altro, non serve installare un plugin di membership completo pensato per gestire abbonamenti a pagamento: rischi solo di appesantire il sito con funzioni che non userai mai. Content Login Gate fa una cosa sola, la fa in modo leggero, ed è gratuito.
Puoi trovarlo e scaricarlo direttamente dalla pagina ufficiale su WordPress.org.
Se lo installi e hai suggerimenti o riscontri un problema, scrivimi pure una mail: essendo un plugin che sviluppo e mantengo io stesso, ogni segnalazione mi è utile per migliorarlo.