it-swarm.asia

كيف يمكنني جعل أذونات القوالب المخصصة الخاصة بي تحترم؟

يمكنني استخدام البرنامج المساعد للأعضاء لإدارة الأذونات على موقعي. بالنسبة للقوالب القياسية ، تعمل بشكل جيد - عندما لا يكون لدى المستخدم إذن بمشاهدة الصفحة ، فسيحصلون على الرسالة التالية:

عذرا ، لكن ليس لديك إذن لعرض هذا المحتوى.

كيف يمكنني التأكد من أنني ما زلت أتلقى هذه الرسالة في القوالب المخصصة؟ ما العلامة التي أحتاج إلى تضمينها؟

EDIT. مصدر القالب:

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

ملاحظة: الغرض من هذا القالب هو العمل كواجهة أمامية لبرنامج شل. أي محتوى على قاعدة البيانات غير ذي صلة ، لذلك لا توجد حلقة. (على الرغم من أن تضمين حلقة وهمية لا يبدو أنه يساعد.)

2
Tom Wright

الرسالة التي نقلتها يتم إنشاؤها بواسطة وظيفة 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
}
3
Rarst

يمكنك استخدام نظام مستويات المستخدمين ، يمكنك العثور على مزيد من المعلومات حول مستويات الأدوار والقدرات هنا:

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
Tom J Nowell