Настройка backend WordPress под клиента

WordPress не только мощная 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' => __('http://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' => __('http://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' => __('http://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 для всех кроме администраторов. Это отгородит ваших клиентов от ненужного посещения админ панели.

(с) http://studio-gost.ru

Поделиться
Отправить
2013   cms   wordpress