it-swarm.com.de

Wie kann ich festlegen, dass meine benutzerdefinierten Vorlagen Berechtigungen berücksichtigen?

Ich verwende das Mitglieder-Plugin, um Berechtigungen auf meiner Website zu verwalten. Bei Standardvorlagen funktioniert dies hervorragend. Wenn der Benutzer keine Berechtigung zum Anzeigen einer Seite hat, wird die folgende Meldung angezeigt:

Entschuldigung, aber Sie haben keine Berechtigung, diesen Inhalt anzuzeigen.

Wie kann ich sicherstellen, dass diese Nachricht in meinen benutzerdefinierten Vorlagen weiterhin angezeigt wird? Welches Tag muss ich einschließen?

EDIT. Vorlagenquelle:

<?php
/*
Template Name: Stats
*/
?>


<?php
get_header();
?>

<div id="main">

<div id="contentwrapper">
  <div class="topPost">
    <h2 class="topTitle"><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
    <div class="topContent">
      <p>Listeners are counted every minute. The green line is the <b>maximum</b> during any given time period. The red area is the <b>average</b> number of listeners during the same time period.</p>
      <h3>Listeners over the last hour</h3>
      <img class="alignnone" title="Listeners over the last hour" src="<?php echo get_graph(60,60); ?>" alt="" width="481" height="149" />
      <hr/>
      <h3>Listeners over the last day</h3>
      <img class="alignnone" title="Listeners over the last day" src="<?php echo get_graph(3600,24); ?>" alt="" width="481" height="149" />
      <hr/>
      <h3>Listeners over the last week</h3>
      <img class="alignnone" title="Listeners over the last week" src="<?php echo get_graph(86400,7); ?>" alt="" width="481" height="149" />
    </div>
    <div class="cleared"></div>
  <div class="cleared"></div>
  </div> <!-- Closes topPost -->
</div> <!-- Closes contentwrapper-->

<?php get_sidebar(); ?>
<div class="cleared"></div>

</div><!-- Closes Main -->


<?php get_footer(); ?>

Hinweis: Diese Vorlage dient als Front-End für ein Shell-Skript. Alle Inhalte in der Datenbank sind irrelevant, daher gibt es keine Schleife. (Obwohl das Einfügen einer Dummy-Schleife nicht zu helfen schien.)

2
Tom Wright

Die von Ihnen angegebene Nachricht wird von der Funktion members_content_permissions_protect() generiert. Standardmäßig wird es als Filter für die Funktionen the_content() und the_excerpt() verwendet. Da Ihre benutzerdefinierte Vorlage diese nicht verwendet, kann die Funktion nicht ausgeführt werden.

Versuchen Sie etwas in der Vorlage:

$content = 'Content to protect';
echo members_content_permissions_protect( $content );

Eine andere Idee:

$protected = members_content_permissions_protect( false );

if( false !== $protected ) {

    echo $protected;
}
else {

    //template stuff goes here
}
3
Rarst

Sie können das Userlevels-System verwenden. Weitere Informationen zu Rollenebenen und Funktionen finden Sie hier:

http://codex.wordpress.org/Roles_and_Capabilities

Sehen Sie hier, wie die alten 'Rollen' dem System der Benutzerebenen zugeordnet werden:

http://codex.wordpress.org/Roles_and_Capabilities#User_Levels

Sie können in Ihren Vorlagen weiter definieren, ob ein Benutzer einer bestimmten Rolle eine Seite anzeigen kann oder nicht, indem Sie Folgendes verwenden:

global $current_user;

get_currentuserinfo();

if ($current_user->user_level < 8) {
    // stuff that is only visible to users lower than level 8
}

Beachten Sie auch:

if ( is_user_logged_in() ) { ... }

http://codex.wordpress.org/Function_Reference/is_user_logged_in

Mit diesen sollten Sie steuern können, wer was sehen kann und auf welcher Zugriffsebene er es sehen muss

0
Tom J Nowell