Limitare l'accesso ai post/pagine in base ai ruoli utente

2 ago 2012, 11:20:06
Visualizzazioni: 24.9K
Voti: 5

Sto cercando un modo per proteggere i contenuti in base ai ruoli utente.

Esempio:

è necessario essere registrati per visualizzare i post (frontend).

Se un utente è un subscriber può leggere i post 1, 2 e 3, ma se l'utente è un contributor può visualizzare i post 1,2,3 e 4,5,6...

qualcuno sa come posso fare questo?

0
Tutte le risposte alla domanda 3
0

puoi utilizzare queste condizioni per mostrare i post privati solo agli utenti loggati con il ruolo contributor. Ora devi solo impostare il post come private per renderlo disponibile per i contributor.

<?php 
    if ( have_posts() ) : while ( have_posts() ) : the_post();
        $private = get_post_custom_values("private");
        if (isset($private[0]) && $private == "true") {

            if ( current_user_can( 'contributor' ) ) { //passare il ruolo a volte potrebbe non funzionare
            the_title();
            the_content();
            } else {            // testo da mostrare al posto del post
                echo 'questo post è privato, solo i contributor possono vederlo';
            }

        } else {        // questo è visibile a tutti
            the_title();
            the_content();
        }

    endwhile; 
    endif; 
?>
2 ago 2012 12:23:30
5

Anche se personalmente non l'ho utilizzato, probabilmente stai cercando un plugin come questo.

Sembra fornire tutte le funzionalità che hai richiesto sopra.

2 ago 2012 11:26:12
Commenti

L'ho appena provato. Non fa quello di cui ho bisogno, ma ci si avvicina... oppure... è troppo complicato!!

Demilio Demilio
2 ago 2012 11:30:05

Ho appena installato il plugin ed è molto semplice configurare l'accesso a determinati articoli per gli abbonati e poi concedere più accesso ai collaboratori.

Vince P Vince P
2 ago 2012 11:48:07

sì, backend, ma ho bisogno di definire l'accesso frontend. Chi può o non può leggere gli articoli, definito dai ruoli utente.

Demilio Demilio
2 ago 2012 11:56:19

Sì, puoi farlo con il plugin (Vedi screenshot su http://s.wordpress.org/extend/plugins/advanced-access-manager/screenshot-4.jpg?r=580686)

Vince P Vince P
2 ago 2012 12:22:33

Nessun problema, felice che tu l'abbia trovato alla fine! :)

Vince P Vince P
2 ago 2012 12:37:45
0

Per ottenere qualcosa del genere puoi rendere alcuni articoli privati e mostrarli solo agli utenti loggati. Per prima cosa devi aggiungere un campo personalizzato, puoi chiamarlo "private" e impostare il valore su "True". Poi sostituisci il loop predefinito di WordPress con questo frammento di codice:

    <?php if (have_posts()) : while (have_posts()) : the_post();

    $private = get_post_custom_values("private");
    if (isset($private[0]) && $private == "true") {
        if (is_user_logged_in()) {
            // Mostra l'articolo privato all'utente loggato
        }
    } else {
        // Mostra l'articolo pubblico a tutti
    }

endwhile; endif; ?>
7 feb 2016 15:55:40