يمكنني استخدام البرنامج المساعد للأعضاء لإدارة الأذونات على موقعي. بالنسبة للقوالب القياسية ، تعمل بشكل جيد - عندما لا يكون لدى المستخدم إذن بمشاهدة الصفحة ، فسيحصلون على الرسالة التالية:
عذرا ، لكن ليس لديك إذن لعرض هذا المحتوى.
كيف يمكنني التأكد من أنني ما زلت أتلقى هذه الرسالة في القوالب المخصصة؟ ما العلامة التي أحتاج إلى تضمينها؟
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(); ?>
ملاحظة: الغرض من هذا القالب هو العمل كواجهة أمامية لبرنامج شل. أي محتوى على قاعدة البيانات غير ذي صلة ، لذلك لا توجد حلقة. (على الرغم من أن تضمين حلقة وهمية لا يبدو أنه يساعد.)
الرسالة التي نقلتها يتم إنشاؤها بواسطة وظيفة 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
}
يمكنك استخدام نظام مستويات المستخدمين ، يمكنك العثور على مزيد من المعلومات حول مستويات الأدوار والقدرات هنا:
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
باستخدام هذه الأدوات ، يجب أن تكون قادرًا على التحكم في من يمكنه معرفة ماذا ، وعلى أي مستوى من الوصول يحتاجون إلى رؤيته