Un plugin per aggiungere contenuto privato ai post

In collaborazione con Jeff Starr (e da un’idea di Jean-Baptiste Jung), ecco un plugin per nascondere parte del testo a chi non è membro del blog, potendo selezionare il target dei lettori.

Leggevo oggi il post di Jeff Starr che rilanciava un’idea di Jean-Baptiste Jung: aggiungere al post un blocco di testo da mostrare solo agli utenti che abbiano un preciso ruolo. In un blog monoutente la funzione è pressoché inutile (semmai si può usare per aggiungere una nota personale al post o un testo per gli utenti registrati), ma in un blog multiutente credo che si riveli più utile.

Mentre Jeff e Jean-Baptiste si limitavano a una funzione da implementare nel proprio functions.php che mostrava il testo privato solo a un determinato tipo di utenti, ho esteso lo script in modo da scegliere in fase di composizione dell’articolo chi potesse vedere la “nota privata” avendo presenti i ruoli di WordPress, e cioè (in ordine decrescente): amministratore, editore, autore, collaboratore, sottoscrittore. Se scrivo una nota per l’amministratore, la vedrà solo lui; se la scrivo per l’editore, la vedrà lui e l’amministratore; se la scrivo per il sottoscrittore, la vedrà lui e tutti quelli superiori a lui. Se lo si vuole, si può inserire una nota solo per un determinato ruolo, escludendo tutti gli altri, anche se superiori di ruolo.

Una volta completato il plugin, l’ho inviato a Jeff che lo ha reso disponibile a tutti.

Il codice usato nel plugin si potrebbe utilizzare incollandolo nel proprio functions.php, ma se si cambia tema tutte le note diverranno visibili a chiunque. Col plugin invece questo non succede.

Come funziona

L’uso è molto semplice e funziona mediante shortcode. La sintassi è:

[private role="ruolo"]Testo privato[/private]

dove al posto di ruolo va inserito uno tra i seguenti (in inglese):

  • administrator
  • editor
  • author
  • contributor
  • subscriber

Come detto, se inserisco una nota per il contributor, anche quelli sopra di lui la leggeranno.

Invece, per far vedere la nota solo al gruppo designato, va usato:

  • editor-only
  • author-only
  • contributor-only
  • subscriber-only

Download

Trovate citato il plugin UBN Private content nel post di Jeff al paragrafo Now in plugin flavor!. Migliorie e suggerimenti sono più che graditi.

Autore: Aldo Latino

Aldo Latino usa con entusiasmo Linux nella distribuzione Ubuntu, è un appassionato di WordPress e si diletta a fare il blogger. Ha anche una lista dei desideri. Per altre informazioni visita la sua .

19 pensieri riguardo “Un plugin per aggiungere contenuto privato ai post”

  1. Pingback: stefano riga75
  2. Pingback: Franco Vite
  3. Pingback: manualissimo
  4. Ciao Aldo, ho appena scaricato il tuo fantastico plugin, davvero molto utile e adatto al mio scopo! Ho notato però che se tento di rendere privata un’immagine con una descrizione (quindi che contiene un altro shortcode [caption] , ma la stessa cosa succede praticamente per ogni “annidamento” di shortcodes) l’immagine non viene visualizzata correttamente (se loggato) ma compare l’intero shortcode della caption.

    Non so se sono stato chiaro..ma eventualmente hai qualche idea su come risolvere questo minimo problema?

    grazie mille, a presto e grazie ancora!
    Emiliano

    1. Ciao Emiliano e benvenuto!

      Non ho in questo momento modo di verificare, ma prova così.
      Se hai il plugin prelevato dal sito di Jeff, modifica la riga 114 (siamo verso la fine) da così:

      return $output;

      a così:

      if( isset( $output ) ) return do_shortcode( $output );

      Dimmi se è tutto a posto così.

      Spero di poter rilasciare questo plugin a breve nel repository di WordPress.

      1. Ciao Aldo e grazie mille, così funziona tutto alla grande!

        Un plugin così utile, merita senz’altro di essere disponibile nel repository di WP!

        Mi sono iscritto alla tua newsletter dopo aver spulciato un po’ i contenuti del tuo blog, davvero tanti complimenti per la tonnellate di info utilissime!

        Di nuovo grazie e..restiamo in contatto! :)
        Emiliano

    1. Ciao Aldo,

      grazie mille, corro a scaricarlo (scusa se ti rispondo in ritardo ma dev’essermi sfuggita la notifica :) )

      Ti chiedo soltanto un’altra cosuccia: è possibile centrare il testo contenuto nello shortcode? Perchè ho provato a centrarlo sia “dentro” che “fuori” dallo shortcode, ma non me lo prende…

      gracias!
      E.

      1. Ciao Emiliano, devi modificare il CSS del tuo tema aggiungendo uno stile specifico. Ad esempio, se usi il tema Twenty Twelve, ecco come:

        .entry-content p.private {
        text-align: center;
        }

        Se hai dimestichezza con la logica “a cascata” dei file CSS, sai come fare.

        Il plugin assegna una classe unica per tutti i paragrafi privati e si chiama “private”. Poi ne assegna una seconda concatenata alla precedente a seconda di chi è il destinatario, cioè:

        p.private.administrator per gli admin
        p.private.editor per gli editori

        e così via.

        Se hai bisogno di una mano, chiedi senza problemi.

        1. Aldo, grazie davvero!
          Ti chiedo soltanto se c’è eventualmente la possibilità di scegliere di volta in volta se allineare i contenuti privati al centro o a sinistra, a seconda del post nel quale sono inseriti.

          Questo immagino (perchè come avrai capito non sono proprio molto pratico!) si possa eventualmente fare, ma al di fuori dei CSS, giusto?

          1. Se tu avessi la possibilità di dire allo shortcode align="center" (o left/right/justify) ti verrebbe comodo? Ad esempio:

            [private role="editor" align="center"]Testo per editori[/private]

            Fammi sapere ché eventualmente faccio un commit apposito.

          2. Esattamente. Sarebbe secondo me una funzione molto interessante perchè permetterebbe di formattare la pagina nelle sue parti private, in modo completamente integrato e funzionale con le possibilità offerte di default da Wp.. Emiliano Martinelli
            social media specialist

            e.martinelli@gmail.com

            twitter: @emi_martinelli

            Il giorno 12/dic/2012, alle ore 19.11, Disqus ha scritto:

I commenti sono chiusi