Не раз, наверняка, пользователи 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 лент, которые интересны лично вам и не имеют никакого отношения к вашим посетителям, какие то ссылки, которые всегда нужны под рукой, да мало ли что еще. И ничего не путается – все строго по сайдбарам.
И все 🙂 Следует помнить, что, некоторую информацию, например счетчики прятать просто нельзя – иначе в статистике будут использоваться только администраторские визиты на сайт.