Il private posting è quella funzione di WordPress che permette di creare articoli e pagine privati visibili soltanto tra l’autore che li ha creati e l’amministratore. Si trova nel box “Publish” nella sezione “Visibility“.
Tale funzione può essere utile per comunicazioni riservate tra autore ed amministratore, per creare reti di collaborazione private ed altro. I messaggi possono venire visualizzati solo all’interno della “Dashboard” (bacheca) del programma.
Tuttavia è possibile mostrare tutti i post privati a tutti gli utenti loggati, vediamo come fare.
Bisogna specificare che ci sono vari metodi per porre luogo a tale operazione: plugin appositi, campi personalizzati ed altro. Oggi utilizzeremo la funzione “capability” di WordPress.
Come indica la parola stessa, la funzione “capability” denota la capacità operativa che ogni utente ha o che gli viene assegnata. Tale varia da ruolo a ruolo.
Supponiamo di voler permettere agli “Authors” di voler leggere le nostre comunicazioni o i nostri post privati. Ricordiamo che di default gli “Authors” non hanno questo permesso.
[PASSO 1] – Cerchiamo il file functions.php ed apriamolo. La “capability” da aggiungere sarà
[html]read_private_posts[/html]
[PASSO 2] – Dobbiamo creare ora il nostro codice supplementare per potenziare il ruolo: sempre all’interno di functions.php scriviamo queste stringhe:
[html]function fb_add_cap2role() {
global $wp_roles;
$wp_roles->add_cap(‘author’, ‘read_private_posts’);
}
add_action( ‘init’, ‘fb_add_cap2role’ );[/html]
e salviamo il file. La modifica principale risiede in questa variabile
[html]
$wp_roles->add_cap(‘author’, ‘read_private_posts’);
[/html]
Salvate il file. Successivamente è anche possibile cancellare questo codice, in quanto tale capacità viene memorizzata nel database MySql.
[PASSO 3] – Possiamo intervenire anche a ritroso sul codice, eliminando i permessi precedentemente creati. Come fare? Basta fare qualche piccola modifica al codice create in precedenza.
[html]function fb_remove_cap2role() {
global $wp_roles;
$wp_roles->remove_cap(‘author’, ‘read_private_posts’);
}
add_action( ‘init’, ‘fb_remove_cap2role’ );
[/html]