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.


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 [...]
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?!
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ì…
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!
Pecciola - 9 marzo 2010
Grazie!
Se non sai nulla di php e html qualche problemino in effetti potresti averlo…facci sapere!
alessandro308 - 9 marzo 2010
Non funge… il mio file attuale è:
Dove e come devo inserire il codice per farlo funsionare?!
alessandro308 - 9 marzo 2010
*funzionare
Nono l’html lo conosco!
Pecciola - 9 marzo 2010
Mandamelo via mail…appena ho tempo gli do un’occhiata e ti dico dove inserirlo.
Ora scappo!
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
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!!
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
Pecciola - 26 aprile 2010
Chiedo venia a tutti…..ho aggiunto la parentesi graffa laddove mancava!
Ora è a posto
dino - 31 dicembre 2010
ciao pecciola mi spieghi in quale functions.php? quello della root o del theme?
dino - 31 dicembre 2010
ciao ci sono riuescito mi spieghi come cambiare il font della scritta o addirittura mettere una immagine? Ciao grazie.
dino - 6 gennaio 2011
magari rispondi ogni tanto…anche con un “non lo so”….
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?
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!
dino - 12 gennaio 2011
zzzz
Pecciola - 12 gennaio 2011
@dino : buonanotte
Prova con $immagine = “immagine.jpg”; return $immagine;