tomwright
  • 0
Учитель

Как сделать так, чтобы мои пользовательские шаблоны учитывали разрешения?

  • 0

Я использую плагин Members для управления разрешениями на моем сайте. Для стандартных шаблонов это прекрасно работает — когда у пользователя нет разрешения на просмотр страницы, он получает следующее сообщение:

Извините, но у вас нет разрешения на просмотр этого контента.

Как я могу убедиться, что это сообщение по-прежнему отображается в моих пользовательских шаблонах? Какой тег мне нужно включить?

РЕДАКТИРОВАТЬ. Источник шаблона:

<?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(); ?>

Примечание. Этот шаблон предназначен для использования в качестве внешнего интерфейса для сценария оболочки. Любой контент в базе данных не имеет значения, так что цикла нет. (Хотя включение фиктивной петли, похоже, не помогло.)

Share
  1. Пожалуйста, добавьте теги шаблона, которые вы используете в своем пользовательском шаблоне, к своему вопросу.

    • 0
  2. Сообщение, которое вы процитировали, создается members_content_permissions_protect() функцией. По умолчанию используется как фильтр the_content() и the_excerpt() функции. Поскольку ваш пользовательский шаблон не использует их, функция не может быть запущена.

    Попробуйте что-то вроде этого в шаблоне:

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

    Другая идея:

    $protected = members_content_permissions_protect( false );
    
    if( false !== $protected ) {
    
        echo $protected;
    }
    else {
    
        //template stuff goes here
    }
    
    • 0
  3. Вы можете использовать систему уровней пользователей, здесь вы найдете больше информации об уровнях ролей и возможностях:

    http://codex.wordpress.org/Roles_and_Capabilities

    Посмотрите здесь, как старые «роли» сопоставляются с системой уровней пользователей:

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

    Вы можете дополнительно определить в своих шаблонах, может ли пользователь данной роли просматривать страницу или нет, используя следующее:

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

    Также имейте в виду:

    if ( is_user_logged_in() ) { ... }
    

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

    Используя их, вы сможете контролировать, кто что может видеть и на каком уровне доступа им это нужно.

    • 0

Оставить ответ

You must login to add an answer.