В предыдущем посту мы рассмотрели Как отключить админ-панель в WordPress для всех кроме администраторов. Эта статья и натолкнула меня на мысль написать статью как настроить WordPress под клиента, в ней я максимально полно расскажу как можно изменить внешний вид и структуру “админки” WordPress в соответствие с пожеланиями заказчика.
Многие со мной, думаю, согласятся, что Woprpress не только мощная Cms, но и доступная в использовании. Очень жаль, что многими эта cms воспринимается как средство для создания блога. Не буду скрывать, что наиболее часто ее используют для создания блога, но (!) для создания бизнес-проектов эта платформа подходит не хуже.
Удаление лишних пунктов меню
Чтобы пользователь ненароком не удалил какой-нибудь важный файл нужно запретить ему доступ к определенным функциям.
Для чего, прописываем код в файл темы functions.php:
function remove_menus(){ global $menu; $restricted = array(__('Dashboard'), __('Posts'), __('Media'), __('Links'), __('Pages'), __('Appearance'), __('Tools'), __('Users'), __('Settings'), __('Comments'), __('Plugins')); end ($menu); while (prev($menu)){ $value = explode(' ', $menu[key($menu)][0]); if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){unset($menu[key($menu)]);} } } add_action('admin_menu', 'remove_menus');
Этот код лишь убирает визуально пункты меню, но не запрещает прямой доступ к ним по ссылке.
Теперь разъясню, какие пункты мы закрыли этим кодом:
__('Dashboard') — главная страница админки; __('Posts') — "Записи"; __('Media') — "Медиафайлы" (картинки, видео и т.п.); __('Links') — "Ссылки"; __('Pages') — "Страницы"; __('Appearance') — "Внешний вид"; __('Tools') — "инструменты" ("импорт", "экспорт"); __('Users') — "пользователи"; __('Settings') — пункт меню "Настройки"! __('Comments') — комментарии; __('Plugins') — "Плагины".
Удаляем рубрику «+Добавить» из админ-панели
Теперь хочется отметить некоторые нюансы Консоли управления. Заходим в админку и видим в панели администратора под кнопкой “+Добавить” выплывает подменю “запись”, дабы не смутить заказчика, который на самом деле не пишет посты, удалим этот пункт из Панели администратора. Вместе с этим нужно удалить ссылки и комментарии, которые привязаны к этому пункту. Для этого нам понадобится следующий код:
function remove_admin_bar_links() { global $wp_admin_bar; $wp_admin_bar->remove_menu('new-content'); $wp_admin_bar->remove_menu('new-link'); $wp_admin_bar->remove_menu('comments'); } add_action( 'wp_before_admin_bar_render', 'remove_admin_bar_links' );
Добавление своих пунктов админ-панель
Наша панель стала выглядеть пусто и неинтересно, чтобы как-то ее оживить добавим новые пункты и ссылки. Сделать это в WordPress очень легко.
Рассмотрим пример, в котором будем добавлять новые продукты на сайт и раздел секций. Здесь заказчик будет добавлять новый контент. Вот как выглядит код:
function add_mycms_admin_bar_link() { global $wp_admin_bar; if ( !is_super_admin() || !is_admin_bar_showing() ) return; $wp_admin_bar->add_menu( array( 'id' => 'add_product_menu', // Может быть любое значение и должно быть уникальным 'title' => __( 'Добавить Продукт'), //Отображение названия в Меню 'href' => __('https://studio-gost.ru/wp-admin/post-new.php?post_type=products'), )); // Добавить в подменю ссылку "Все продукты" $wp_admin_bar->add_menu( array( 'parent' => 'add_product_menu', // Уникальный идентификатор родительского меню 'id' => 'view_all_products', 'title' => __( ''), 'href' => __('https://studio-gost.ru/wp-admin/edit.php?post_type=products'), )); //Добавить в подменю ссылку "Специфика" $wp_admin_bar->add_menu( array( 'parent' => 'add_product_menu', 'id' => 'my_sections', 'title' => __( 'Специфика'), 'href' => __('https://studio-gost.ru/wp-admin/edit-tags.php?taxonomy=Section&post_type=products'), )); } add_action('admin_bar_menu', 'add_mycms_admin_bar_link',25);
Заменяем логотип WordPress на странице входа на сайт
Все кто знаком с WP не по наслышке наверняка лицезрел и официальный логотип wordpress на странице входа. Естественно он никак не мешает нормальному функционированию сайта, но заказчики – народ требовательный, видеть свой собственный бренд им нравится больше. Поэтому не забудьте в процессе работы заменить официальное лого на логотип компании-заказчика.
Как это сделать уже описывалось на нашем блоге Замена логотипа wordpress.
Удаляем логотип WordPress из Панели администратора
Важно! Логотип WordPress находится еще и в административной зоне сайта и в выпадающем меню со ссылками на документацию и форумы поддержки WP. Они также легко удаляются, путем добавления строки к функции, которая описана выше Удаляем рубрику «+Добавить» данной строчки:
$wp_admin_bar->remove_menu('wp-logo');
Или же вставить код целиком:
function remove_admin_bar_links() { global $wp_admin_bar; $wp_admin_bar->remove_menu('wp-logo'); } add_action( 'wp_before_admin_bar_render', 'remove_admin_bar_links' );
Упрощаем ссылку входа
Теперь делаем проще ссылку для входа в WP. Изначальна ссылка выглядит так: http://site.ru/wp-login.php, изменим ее на эту: http://site.ru/login. При этом изменении пользователь будет перенаправляться на http://site.ru/wp-login.php
Для этого вставляем код в functions.php:
/* редирект с login на /wp-login.php и с admin на /wp-admin */ add_action('template_redirect', 'kama_login_redirect'); function kama_login_redirect(){ if( strpos($_SERVER['REQUEST_URI'], 'login')!==false ) $loc = '/wp-login.php'; elseif( strpos($_SERVER['REQUEST_URI'], 'admin')!==false ) $loc = '/wp-admin/'; if( $loc ){ header( 'Location: '.get_option('site_url').$loc, true, 303 ); exit; } }
Этот способ более удобен, потому что вся редакция идет “внутри” темы.
Отключение обновится
Следующим пунктом идет отключение проверки обновления. Не чего клиентом там лазить, тем более без спецподготовки. Потому что новые обновления могут некорректно работать с старыми плагинами, а иногда это может привести к потери работоспособности сайта.
Опять работать будем с файлом functions.php вставляем в него этот код:
add_filter('pre_site_transient_update_core',create_function('$a', "return null;")); wp_clear_scheduled_hook('wp_version_check'); remove_action( 'load-update-core.php', 'wp_update_plugins' ); add_filter( 'pre_site_transient_update_plugins', create_function( '$a', "return null;" ) );
Удаление админ-бара
Так же как писалось в самом начале этой статьи на сайте можно
Отключить админ-панель в WordPress для всех кроме администраторов. Это отгородит ваших клиентов от ненужного посещения админ панели.
Заключение
Информация данного поста не ограничивется всеми способами “заточки” WordPress под клиента. Наверняка, Вы уже использовали свои собственные наработки для настройки сайта под пожелания заказчика. Буду рад, если Вы поделитесь своими знаниями чуть ниже в комментариях под этим постом.
12 комментариев
настроил точно так же, все понравилось. Отличная статья!
Как сделать так, чтобы адрес, по которому посещается админка, был другой. к примеру не studio-gost.ru/login.php а название файла сменить на zaxod.php, и как сделать так, чтобы не wp-admin каталог отвечал за работу админки блога, а к примеру wp-nachalctvo или upravlenie
Вот этого я не знаю, не изучал этот вопрос.
Как всегда коротко и очень информативно.Спасибо.
Спасибо за подсказку, мне понравилось.
Мне нужно было “Внешний вид убрать, и как раз он и не скрывается почему то
в правом верхнем углу в админ панели, есть два выпадающих меню “настройка экрана” и “помощь”, ПОЖАЛУЙСТА подскажите существует ли способ их скрыть???? это же такое палево!
Ещё пункт “Внешний вид” “темы” – Огромное палево, ещё и перевод такой “установка темы” клиент сразу думает что это какой-то конструктор..
Подскажите что можете пожалуйста
К сожалению, мне не встречалось решение как их убрать.
Решение этой проблемы описано в этой статье в разделе Удаление лишних пунктов меню
здравствуйте. скажите пожалуйста, в какую часть файла это все нужно вставлять (wordpress 3,9)
У всех этот файл разный и общего решения нет. Но безопаснее всего вставлять надо в самом конце и смотреть по аналоги как прописаны другие функции.
Игорь, не в курсе, как удалить “Новости WordPress”? Обшарил весь инет – нигде нет ничего по данному поводу((
Посмотрите в новой статье на форуме Настройка админки WordPress для клиента