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?
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.
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;
?>
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; ?>