WordPress: доступ к админ-меню и авторизация со страниц сайта

Если вы часто заходите в админку WordPress-сайта, то, согласитесь, было был гораздо удобнее иметь на каждой странице сайта блок с прямыми ссылками в админку на часто выполняемые задачи, например, ссылку на страницу создания новой записи или страницу модерации комментариев.

Расскажу, как интегрировать такое меню. Причем, его будете видеть только вы, как администратор, после того, как авторизуетесь в админке.

Это меню можно либо интегрировать в сайдбар, чтобы оно выглядело аналогично другим блокам, либо зафиксировать в пустом пространстве страницы, как это сделано у меня:

WordPress admin menu

С помощью стилей я зафиксировал этот блок, поэтому при прокрутке страницы он находится всегда в одной и той же позиции относительно окна браузера. Для меня это очень удобно.

Чтобы выводить подобное меню только тогда, когда вы авторизованы как админ, необходимо использовать специальную функцию current_user_can() с параметром level_10, который указывает на то, что это пользователь с правами администратора.

Код будет выглядеть следующим образом:

<?php if (current_user_can('level_10')) { ?>
<ul>
 <li><a href="/wp-admin/post-new.php">Написать пост</a></li>
 <li><a href="/wp-admin/edit.php">Управление</a></li>
 <li><a href="/wp-admin/edit-comments.php">Комментарии</a></li>
 <li><a href="/wp-admin/options-general.php">Настройки</a></li>
</ul>
<?php } ?>

В список ссылок, естественно, вы можете добавить только те, которые вам нужны.

Можно пойти еще дальше, и сделать так, что, если вы не авторизованы, то на месте этого меню будет отображаться форма входа в админку. У меня это выглядит следующим образом:

WordPress форма авторизации

В результате код будет выглядеть вот так:

<?php if (current_user_can('level_10')) { ?>
<ul>
 <li><a href="/wp-admin/post-new.php">Написать пост</a></li>
 <li><a href="/wp-admin/edit.php">Управление</a></li>
 <li><a href="/wp-admin/edit-comments.php">Комментарии</a></li>
 <li><a href="/wp-admin/options-general.php">Настройки</a></li>
</ul>
<?php } else { ?>
<form name="loginform" id="authoriz" action="/wp-login.php" method="post">
 <input type="text" name="log" value="" id="login" />
 <input type="password" name="pwd" value="" id="password" />
 <input type="hidden" name="rememberme" value="forever" />
 <input type="hidden" name="redirect_to" value="/" />
 <label for="rememberme"><input name="rememberme" id="rememberme" type="checkbox" checked="checked" value="forever" /> Запомнить меня</label>
</form>
<?php } ?>

Я пошел еще дальше в плане авторизации. Вы, наверное, уже успели заметить, что форму авторизации сейчас на моем блоге вы почему-то не наблюдаете слева от контента. Так вот, дело в том, что этот блок выводится только для меня — через UserJS, который поддерживается браузером Opera. На всеобщее обозрение выставлять авторизацию совсем не хочется, поэтому я реализовал ее через скрипт, загружаемый с моего компьютера.

Если я не ошибаюсь, технологию UserJS поддерживает также браузера FireFox, поэтому, если найдутся желающие, в отдельной статье могу рассказать, как создать этот скрипт с формой авторизации для WordPress, которую будете видеть только вы.

Комментарии (22)
  1. 1
    Master

    Есть очень приличный плагин для этих целей. Всплывающая панель (сверху) — WS Tools Bar. Если подправить скрипт (русифицировать ссылки) — удобней я еще ничего не видел. Советую.