it-swarm.com.de

Beschränken Sie den Zugriff auf Posts/Seiten nach Benutzerrollen

Ich suche nach einer Möglichkeit, Inhalte durch Benutzerrollen zu schützen.

Beispiel:

sie müssen registriert sein, um Beiträge anzeigen zu können (Frontend).

Wenn ein Benutzer ein Abonnent ist, kann er die Posts 1, 2 und 3 lesen, aber wenn der Benutzer ein Mitwirkender ist, kann er die Posts 1,2,3 und 4,5,6 anzeigen ...

weiß jemand, wie ich das machen kann?

3
Demilio

Obwohl ich das nicht persönlich benutzt habe, schaust du dir wahrscheinlich ein Plugin an so

Scheint alle Funktionen bereitzustellen, die Sie oben angefordert haben.

1
Vince Pettit

sie können solche Bedingungen verwenden, um private Beiträge nur angemeldeten Benutzern mit der Rolle contributor anzuzeigen. Jetzt müssen Sie nur noch den Beitrag private für den Mitwirkenden verfügbar machen.

<?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' ) ) { //passing role to it may sometime not work
            the_title();
            the_content();
            } else {            // text to show instead the post
                echo 'this post is private, only contributor can view it';
            }

        } else {        // this is visible to all
            the_title();
            the_content();
        }

    endwhile; 
    endif; 
?>
4
amit

Um so etwas zu erreichen, können Sie einige Posts als privat kennzeichnen und sie nur den angemeldeten Benutzern anzeigen. Zuerst müssen Sie ein benutzerdefiniertes Feld hinzufügen. Sie können es als "privat" und als "wahr" kennzeichnen. Dann füge hinzu, ersetze die Standard-WP -Schleife durch dieses Code-Snippet:

    <?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()) {
            // Display private post to logged user
        }
    } else {
        // Display public post to everyone
    }

endwhile; endif; ?>
0
Zohair Baloch