
Сегодня мы продолжим адаптировать под свои нужды новое функциональное решение, которое появилось в WordPress 3.1 — «Панель администратора».
Повторюсь, на мой взгляд — данная панель очень удобна в работе и позволяет сильно упростить взаимодействие с блогом. Возможно, сказывается мое довольно длительное общение с 1C:Bitrix, в котором подобный же функционал является неотъемлемой частью интерфейса администратора и позволяет выполнять многие действия вообще без посещения административной части сайта.
Итак, в прошлой статье мы разобрались — как удалить ненужные пункты на панели администратора, а в этой статье научимся добавлять собственное меню на панель администратора WordPress с нужными в работе ссылками, которые позволят упростить работу с блогом.
Что мы будем добавлять?
В сущности, добавить можно любые ссылки, но я сделал подборку тех сервисов, социальных сетей и закладок, которыми пользуюсь сам. Там, где это было возможно — к каждой ссылке добавлены параметры, которые позволяют сразу получать определенные данные со страницы сайта (например, title) или открывать информацию именно по тому сайту, с которого был переход на сайт сервиса.
Это позволило сделать схему работы более удобной — код можно добавлять на любой сайт без предварительной правки.
Сервисы для работы с сайтом:
- просмотр статистики сайта в Google Webmaster;
- проверка показателей сайта в PR-CY.ru;
- проверка количества реакций в Twitter.
Социальные сети:
- публикация в Facebook;
- публикация статьи в Twitter;
- публикация статья во вКонтакте;
- публикация статьи в ЖЖ;
- публикация в Google Buzz;
- публикация в МойМир;
- публикация статьи в Я.ру;
Анонсирование статьи в социальных сетях для вебмастеров:
- анонсирование в Grabr.ru;
- анонсирование в Блогистике;
- анонсирование в Seominds;
- анонсирование в Webice
Социальные закладки:
- добавление статьи в Google Bookmarks;
- добавление статьи в Memori.ru;
- добавление статьи в БобрДобр;
- добавление статьи в МоёМесто;
- добавление статьи в MisterWong.
Добавляем пункты меню в панели администратора WordPress
Для этого мы создадим отдельное меню под названием «Share» и добавим в него все наши ссылки.
Открываем файл functions.php в папке темы WordPress и добавляем в него следующий код. Если такого файла в папке нет — просто создайте его.
Перед внесением изменений в functions.php — обязательно сделайте резервную копию этого файла!
function wp_admin_bar_init() { if (!is_super_admin() || !is_admin_bar_showing() ) return; add_action('admin_bar_menu', 'wp_admin_bar_links', 500); } function wp_admin_bar_links() { global $wp_admin_bar; $url = 'http://'. $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; $html = file_get_contents($url); if(preg_match('/<title>(.*)<\/title>/smU', $html, $matches)) { $title = $matches[1];} $gwt_url = ''. $_SERVER["SERVER_NAME"]; $gwt = 'https://www.google.com/webmasters/tools/dashboard?hl=en&siteUrl=http://'.urlencode($gwt_url).'/'; $pr_cy = 'http://www.pr-cy.ru/analysis/'.urlencode($gwt_url); $twitter_reactions = 'http://search.twitter.com/search?q='. urlencode($url); $facebook = 'http://www.facebook.com/sharer.php?u='.urlencode($url); $twitter = 'http://twitter.com/home?status='.urlencode($title).' '.urlencode($url); $grabr = 'http://grabr.ru/add'; $blogistica = 'http://blogistica.ru/submit'; $seominds = 'http://seominds.ru/topic/add/'; $webice = 'http://webice.ru/addnews.html'; $vkontakt = 'http://vkontakte.ru/share.php?url='.urlencode($url); $lj = 'http://www.livejournal.com/update.bml?event='.urlencode($url).'&subject='.urlencode($title); $gbuzz = 'http://www.google.com/reader/link?url='.urlencode($url).'&title='.urlencode($title).'&srcURL=http://'.urlencode($gwt_url); $mm = 'http://connect.mail.ru/share?share_url='.urlencode($url); $ya_ru = 'http://my.ya.ru/posts_add_link.xml?URL='.urlencode($url).'&&title='.urlencode($title);; $memori = 'http://memori.ru/link/?sm=1&u_data[url]='.urlencode($url); $bobrdobr = 'http://bobrdobr.ru/addext.html?url='.urlencode($url).'&title='.urlencode($title); $moemesto = 'http://moemesto.ru/post.php?url='.urlencode($url).'&title='.urlencode($title); $misterwong = 'http://www.mister-wong.ru/index.php?action=addurl&bm_url='.urlencode($url).'&bm_description='.urlencode($title); $links = array( 'Статистика в Google Webmaster Tools' => $gwt, 'Показатели сайта в PR-CY.ru' => $pr_cy, 'Реакции в Twitter' => $twitter_reactions, 'Опубликовать в Facebook' => $facebook, 'Опубликовать в Twitter' => $twitter, 'Опубликовать в вКонтакте' => $vkontakt, 'Опубликовать в ЖЖ' => $lj, 'Опубликовать в Google Buzz' => $gbuzz, 'Опубликовать в Мой Мир' => $mm, 'Опубликовать в Я.ру' => $ya_ru, 'Анонсировать в Grabr' => $grabr, 'Анонсировать в Блогистике' => $blogistica, 'Анонсировать в Seominds' => $seominds, 'Анонсировать в Webice' => $webice, 'Добавить в Memori.ru' => $memori, 'Добавить в БобрДобр' => $bobrdobr, 'Добавить в МоеМесто' => $moemesto, 'Добавить в MisterWong' => $misterwong ); $wp_admin_bar->add_menu( array( 'title' => 'Share', 'href' => false, 'parent' => false )); foreach ($links as $label => $url) { $wp_admin_bar->add_menu( array( 'title' => $label, 'href' => $url, 'parent' => 'share', 'meta' => array('target' => '_blank') )); } } add_action('admin_bar_init', 'wp_admin_bar_init'); |
Сохраняем файл function.php, открываем публичную часть сайта и видим новый пункт меню на панели администратора WordPress. В сущности — ничего сложного.

Что еще можно добавить?
Добавить можно практически любую ссылку, но параметры к ней можно дописать только в том случае, если вы можете их узнать из URL и передать при запросе.
Например, можно было бы еще добавить параметризированную ссылку на Яндекс.Вебмастер — но проблема в том, что в отличие от Google Webmasters, в котором ссылка указывается в явном виде, этот сервис формирует URL каждого проекта с помощью ID. Соответственно, вставить этот параметр автоматически нельзя — только вручную для каждого сайта.
Впрочем, ничто не мешает вам это сделать самостоятельно. Для добавления Яндекс.Вебмастер в список ссылок, достаточно внести 2 строки кода:
В функцию wp_admin_bar_links()
добавляем:
$y_w = 'http://webmaster.yandex.ru/site/?host=xxx'; |
В массив $links
добавляем:
'Статистика сайта в Яндекс.Вебмастер' => $y_w, |
Обратите внимание, вместо «xxx» в первой строке нужно добавить идентификатор своего сайта.
По абсолютно аналогичной схеме можно добавить и Google Analytics и любые другие сервисы. С другой стороны, нет никаких ограничений в том, чтобы добавить обычную ссылку на сам сервис и выбирать нужный сайт вручную. Так, например, сделано с социальными сетями для вебмастеров. В общем — все зависит исключительно от вашей фантазии!
А какие пункты в панель администратора WordPress добавили бы вы?
В статье использованы материалы Problogdesign.com