Показывать только для админа

Не раз, наверняка, пользователи WordPress задавались вопросом – а как бы сделать так, что бы некую информацию видел только я (администратор)? Сегодня расскажу о паре решений. Работает на WP выше 2.0More…

Способ первый – совсем несложный

Качаем http://www.daikos.net/widgets/daikos-text-widget/. Это такая замечетельная штука, которая может обрабатывать PHP. Активируем виджет в плагинах. Идем Внешний вид – Виджеты и переносим появивщийся виджет на ваш сайдбар. Если вы уже используете встроенные виджеты Текст для отображения, например, счетчиков или чег-нибудь подобного, то копируем из него всю информацию и вставляем ее в наш Daiko’s Text Widget. Затаем снизу (или сверху, как больше нравиться) добавляем

<?php if (current_user_can('level_10')) { ?>
Только для админа
<?php } ?>

Достоинства
– просто и почти ничего не нужно делать.
Недостатки
-если не придумать, куда засунуть скрываемую инфу – придется делать отдельный виджет – а это не всегда красиво.

Способ второй – сложнее, но интереснее

Второй сайдбар. Открываем в папке вашей темы файл sidebar.php. Там скорее всего почти сразу натыкаемся на

<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar() ) : ?>

Или что то похожее. Это нично иное как начало регистрации нашего сайдбара. В скобочках добавляем 1 получается

<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar(1) ) : ?>

и выше (думаю админский сайдбар будет у вас именно выше) добавляем

<?php if (current_user_can('level_10')) { if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar(2) ) : ?><?php endif; }?>

Но это еще не все. Так работать не будет. Сохраняем наш sidebar.php, открываем functions.php который лежит рядом и находим нечто подобное (данный код из взят из дефолтной темы)

if ( function_exists('register_sidebar') )
register_sidebar(array(
'before_widget' => '<li id="%1$s" class="widget %2$s">',
'after_widget' => '</li>',
'before_title' => '<h2 class="widgettitle">',
'after_title' => '</h2>',
));

Копируем, вставляем чуть ниже еще раз и в каждую функцию добавляем по строче с названием. Получается так

if ( function_exists('register_sidebar') )
register_sidebar(array(
'name' => 'Админ',
'before_widget' => '<li id="%1$s" class="widget %2$s">',
'after_widget' => '</li>',
'before_title' => '<h2 class="widgettitle">',
'after_title' => '</h2>',
));

Имя – какое угодно. К примеру для "Обычный сайдбар" и "Админский сайдбар" Плюсы такого решения очевидны – можно на второй сайдбар положить все что угодно – несколько rss лент, которые интересны лично вам и не имеют никакого отношения к вашим посетителям, какие то ссылки, которые всегда нужны под рукой, да мало ли что еще. И ничего не путается – все строго по сайдбарам.

И все 🙂 Следует помнить, что, некоторую информацию, например счетчики прятать просто нельзя – иначе в статистике будут использоваться только администраторские визиты на сайт.

Anonymous
Отправить
Ответ на: