Wordpress : come mostrare un contenuto solo ad utenti registrati

Come tutti ben sapete, Wordpress consente ai lettori di creare un account e registrarsi al vostro blog. Una possibilità che avete per attirare su questo i lettori è quella di mostrare alcuni contenuti o parte di questi solo ad utenti già registrati.

Vediamo come fare utilizzando gli shortcodes tanto cari a questa piattaforma.

Aprite il file functions.php e incollate la seguente funzione in fondo :

function member_check($atts, $content = null) {
if (is_user_logged_in() && !is_null($content) && !is_feed()) {
return $content;
} else {
return 'Spiacente, questa sezione è disponibile solo per i nostri membri. Clicca qui per registrarti.';
}
}
add_shortcode('member', 'member_check');

Abbiamo così creato il nostro shortcode da utilizzare quando e dove vogliamo con tanto di invito alla registrazione abbastanza esplicito come avrete notato nel codice.
Ad esempio, se in un articolo volessimo ometterne una parte ad utenti non registrati :

[member]
Questo testo sarà visibile solo ad utenti registrati..
[/member]

Tutto molto facile , come avrete intuito.

19 Commenti all'articolo

  1. wp-popular.com » Blog Archive » Wordpress : come mostrare un contenuto solo ad utenti registrati | Pecciola - 19 febbraio 2010

    [...] Continue reading here: Wordpress : come mostrare un contenuto solo ad utenti registrati | Pecciola [...]

  2. alessandro308 - 9 marzo 2010

    a me non funziona, quando inserisco il codice nella pagina fuction mi visualizza il codice in alto nella pagina, in qualsiasi parte, o nel pannello di controllo o nella index.

    Cosa posso fare?!

  3. Pecciola - 9 marzo 2010

    @Alessandro : fai attenzione ad incollare la funzione correttamente nel file functions.php stando attento alle parentesi graffe di apertura e chiusura. Secondo me sbagli qualche cosa lì…

  4. alessandro308 - 9 marzo 2010

    io copio ed incollo il codice così come lo trovo e non conoscendo praticamente niente di PHP non so come risolvere. Ora provo ad applicare una graffa all’inizio ed alla fine!
    p.s. BEL BLOG! ;)

  5. Pecciola - 9 marzo 2010

    Grazie!
    Se non sai nulla di php e html qualche problemino in effetti potresti averlo…facci sapere!

  6. alessandro308 - 9 marzo 2010

    Non funge… il mio file attuale è:

    Dove e come devo inserire il codice per farlo funsionare?!

  7. alessandro308 - 9 marzo 2010

    *funzionare

    Nono l’html lo conosco!

  8. Pecciola - 9 marzo 2010

    Mandamelo via mail…appena ho tempo gli do un’occhiata e ti dico dove inserirlo.
    Ora scappo!

  9. Adriano - 23 aprile 2010

    Ciao questo post è molto interessante perché farebbe al caso mio, ho appunto bisogno di omettere alcuni contenuti per gli utenti non registrati. Ho fatto come dici tu ma non funziona, almeno a me… Inserendo il codice così com’è da errore (manca una parentesi graffa dopo la riga 8), a meno che non vada inserito da qualche altra parte e non in fondo al file.
    Ho inserito la graffa mancante e il risultato è il non funzionamento. A me sembra che la funzione ignori completamente i tag [member] e li trascrive semplicemente nel post come se fossero semplice testo. Ho provato ad inserire questi tag sia dall’editor evoluto che dall’html. Uso wordpress 2.9.2
    Ciao grazie per il tuo aiuto

  10. Pecciola - 23 aprile 2010

    @Adriano : onestamente dovrei vedere bene il codice per capire, ma ti consiglio, prima di copiare e incollare il codice, di leggerti l’articolo sugli shortcodes :
    http://pecciola.com/2009/07/cosa-sono-e-quali-vantaggi-portano-gli-shortcodes-su-wordpress-1.html

    Di sicuro potrai scovare meglio dove sta il pb.
    Fammi sapere!!

  11. Adriano - 23 aprile 2010

    Ciao ho risolto!!!! :-)
    L’errore risiedeva che andavo ad editare il file functions.php sbagliato (quello in wp-includes).
    Ho inserito il codice così come ho trovato su quest’altro sito… http://www.wprecipes.com/wordpress-shortcode-display-content-to-registered-users-only

    molto simile al tuo e tutto funge!!!
    Da quello che vedo quindi se non erro manca solo la graffa alla linea 7 che chiude la definizione di funzione.
    Ciao e grazie ancora

  12. Pecciola - 26 aprile 2010

    Chiedo venia a tutti…..ho aggiunto la parentesi graffa laddove mancava!
    Ora è a posto

  13. dino - 31 dicembre 2010

    ciao pecciola mi spieghi in quale functions.php? quello della root o del theme?
     
     

  14. dino - 31 dicembre 2010

    ciao ci sono riuescito mi spieghi come cambiare il font della scritta o addirittura mettere una immagine? Ciao grazie. :D

  15. dino - 6 gennaio 2011

    magari rispondi ogni tanto…anche con un “non lo so”….

  16. Pecciola - 7 gennaio 2011

    @dino : figliolo mio..hai ragione, ma ho anche altro cui pensare. Comunque, per il font di scrittura devi utilizzare il foglio di stile css. Sai cosa intendo?

  17. dino - 7 gennaio 2011

    eh ma per inserire semplicemente una immagine al posto della scritta? Dai dedicati un pò a noi che senza di te siamo perduti!

  18. dino - 12 gennaio 2011

    zzzz

  19. Pecciola - 12 gennaio 2011

    @dino :  buonanotte

    Prova con $immagine = “immagine.jpg”;  return $immagine;

Lascia un commento