интернетмагазинот 19 990 руб.
LandingPageот 14 990 руб.

Работа с админкой WordPress (сайт для клиента).

WordPress – создаем сайт с нуля.

Работа с админкой WordPress (сайт для клиента).

Главная » WordPress » Работа с админкой WordPress (сайт для клиента).

Одной из важнейших составных частей блога на движке WordPress является административная панель (админка). Именно с ее помощью пользователи имеют возможность управлять сайтом: дизайном, сообщениями, записями и многим другим. Разработчики сайтов должны осуществлять контроль над админкой, чтобы действия клиента не влияли координальным образом на внешний вид ресурса и его функциональность. Для этого, ниже описаны различные хаки упрощающие контроль над админкой WordPress.

Удаление лишних пунктов меню

При создании блога целесообразно будет запретить доступ к определенным функциям. Таким образом удастся избежать многих проблем, включая случайное удаление основной темы. Для этого необходимо внедрить код в имеющийся файл темы 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’) — ну и наконец, святое: пункт меню «Плагины».

Удаляем админ-меню полностью

Комуто было нужно полностью удалить админ-меню. Мне стало интересно и вот что я придумал:

add_action('admin_head', 'kill_adminmenu');
function kill_adminmenu(){
	$GLOBALS['menu'] = array();
	echo "";
}

Вставляем код куда-нить в functions.php и у нас больше нет меню в админ-панли. Тут меню также убирается визуально и не закрывает прямой доступ к пунктам меню по ссылкам.

Собственный логотип на странице входа

Какой либо практической пользы такой хак не принесет, но увеличит привлекательность и внешний вид сайта, клиенты порадуются тому, что будут видеть собственный логотип при входе в админку. То что делает хак ниже можно реализовать с помощью плагина «The Custom admin branding», но к чему плагин, когда мы можем просто добавить пару строк в файл темы functions.php.

Важно, чтобы логотип (картинка custom-login-logo.gif) находился по указанному адресу (в папке images в каталоге темы).

function my_custom_login_logo(){
	echo '';
}
add_action('login_head', 'my_custom_login_logo');

Изменение внутреннего логотипа админки

Данный хак дополнит предыдущий и увеличит ощущение того, что блог создавался именно для конкретного клиента. Если мы вставим этот код в файл темы functions.php, то логотип в верхнем левом углу в админке WP изменится на нужный нам (custom-logo.gif).

Важно, чтобы логотип (картинка custom-logo.gif) находилась по указанному адресу (в папке images в каталоге темы).

function my_custom_logo(){
	echo '';
}
add_action('admin_head', 'my_custom_logo');

Отключение сообщений о необходимости обновится

Пакеты обновлений для WordPress разработчики движка выпускают часто. Их обязательно необходимо устанавливать, чтобы поддержать меры безопасности на должном уровне. Однако клиентам о различных обязательных изменениях лучше не знать. Это позволит избежать необоснованного волнения, что что-то не так с сайтом. Делается это просто, следует вставить такой код в файл темы functions.php:

if( !current_user_can( 'edit_users' ) ){
	add_action( 'init', create_function( '$a', "remove_action( 'init', 'wp_version_check' );" ), 2 );
	add_filter( 'pre_option_update_core', create_function( '$a', "return null;" ) );
	// для 3.0+
	add_filter( 'pre_site_transient_update_core', create_function( '$a', "return null;" ) );
}

Удаление лишних виджетов из консоли WordPress

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

function clear_dash(){
	$side = &$GLOBALS['wp_meta_boxes']['dashboard']['side']['core'];
	$normal = &$GLOBALS['wp_meta_boxes']['dashboard']['normal']['core'];

	unset($side['dashboard_quick_press']); //Быстрая публикация
//	unset($side['dashboard_recent_drafts']); //Полседние черновики
	unset($side['dashboard_primary']); //Блог WordPress
	unset($side['dashboard_secondary']); //Другие Нновости WordPress

	unset($normal['dashboard_incoming_links']); //Входящие ссылки
//	unset($normal['dashboard_right_now']); //Прямо сейчас
	unset($normal['dashboard_recent_comments']); //Последние комментарии
	unset($normal['dashboard_plugins']); //Последние Плагины
}
add_action('wp_dashboard_setup', 'clear_dash' );

Добавление собственных виджетов в консоль (админку)

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

function example_dashboard_widget_function(){
	// Показать то, что вы хотите показать
	echo "Привет, мир. Я — великий виджет админки, созданный великими программистами";
}
// Создаем функцию, используя хук действия
function example_add_dashboard_widgets() {
	wp_add_dashboard_widget('example_dashboard_widget', 'Пример виджета админки', 'example_dashboard_widget_function');
}
// Хук в 'wp_dashboard_setup', чтобы зарегистрировать нашу функцию среди других
add_action('wp_dashboard_setup', 'example_add_dashboard_widgets' );

Изменение цвета шапки админки

C версии 3.8 WordPress представляет множество цветовых схем, среди которых можно подобрать наиболее подходящую.
Иногда возможно нужно изменить белый фон шапки админки, например чтобы цвета соответствовали цветам бренда клиента или еще по каким-то причинам. Чтобы изменить цветовую схему воспользуйтесь следующим хуком и укажите цвета в CSS стилях:

add_action('admin_head', 'custom_colors');
function custom_colors() {
	echo '';
}

Таким же образом можно указать CSS стили для любых других элементов админки.

Добавление сообщений с дополнительной справкой

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

function my_admin_help($text, $screen) {
	// Проверим, только ли для страницы настроек это применимо
	if (strcmp($screen, MY_PAGEHOOK) == 0 ) {
		$text = 'Вот некоторая полезная информация, которая поможет вам разобраться с плагином...';
		return $text;
	}
	// Пусть по умолчанию штуки с помощью будут и на других страницах панели управления
	return $text;
}
add_action( 'contextual_help', 'my_admin_help' );

Мониторинг ошибок сервера из админки

Известно всем, в WordPress можно создавать виджеты. Это можно использовать чтобы следить за PHP ошибками из консоли. Допустим, пользователь зашел на сайт и увидел какую-то ошибку, о которой вы возможно не знаете, эта ошибка была записана в лог ошибок сервера, чтобы просматривать такие ошибки прямо из консоли используйте нижеследующий код. Функция, которая будет считывать файл с логами PHP ошибок сервера и выводить ошибки из него в виджет. Также, можно будет очистить этот лог файл прямо из админки WP:

function slt_PHPErrorsWidget() {
	$logfile = $_SERVER['DOCUMENT_ROOT'] . '/../error_log'; // Полный пусть до лог файла
	$displayErrorsLimit = 100; // Максимальное количество ошибок, показываемых в виджете
	$errorLengthLimit = 300; // Максимальное число символов для описания каждой ошибки
	$fileCleared = false;
	$userCanClearLog = current_user_can( 'manage_options' );

	// Очистить файл?
	if( $userCanClearLog && isset( $_GET["slt-php-errors"] ) && $_GET["slt-php-errors"]=="clear" ){
		$handle = fopen( $logfile, "w" );
		fclose( $handle );
		$fileCleared = true;
	}
	// Читаем файл
	if( file_exists( $logfile ) ){
		$errors = file( $logfile );
		$errors = array_reverse( $errors );
		if ( $fileCleared ) echo '

Файл очищен.

'; if ( $errors ) { echo '

Ошибок: '. count( $errors ) . '.'; if ( $userCanClearLog ) echo ' [ Очистить файл логов ]'; echo '

'; echo '
'; echo '
    '; $i = 0; foreach( $errors as $error ){ echo '
  1. '; $errorOutput = preg_replace( '/\[([^\]]+)\]/', '[$1]', $error, 1 ); if( strlen( $errorOutput ) > $errorLengthLimit ){ echo substr( $errorOutput, 0, $errorLengthLimit ).' [...]'; } else echo $errorOutput; echo '
  2. '; $i++; if( $i > $displayErrorsLimit ){ echo '

    Набралось больше чем '. $displayErrorsLimit .' ошибок в файле...

    '; break; } } echo '
'; } else echo '

Ошибок нет!

'; } else echo '

Произошла ошибка чтения лог файла.

'; } // Добавляем виджет function slt_dashboardWidgets(){ wp_add_dashboard_widget( 'slt-php-errors', 'PHP errors', 'slt_PHPErrorsWidget' ); } add_action( 'wp_dashboard_setup', 'slt_dashboardWidgets' );

Умный показ ошибок PHP

Одним из элементов защиты блога от взлома, является отключение вывода ошибок PHP на экран. Поэтому на рабочем сервере все же лучше, чтобы ошибки не показывались. По умолчанию, на многих серверах так и сделано, но во время работы над сайтом, а это часто бесконечный процесс, ошибки появляются постоянно и всегда включать/выключать становится все сложнее с каждым разом. Поэтому мне пришел в голову такой прием: показывать ошибки PHP только, если пользователь зарегистрирован и имеет права администратора, для этого вставьте такой код в functions.php:

add_action('init', 'enable_errors');
function enable_errors(){
	if( $GLOBALS['user_level'] < 5 )
		return;
	error_reporting(E_ALL ^ E_NOTICE);
	ini_set("display_errors", 1);
}

Перед установкой кода убедитесь, что показ ошибок выключен и конфигурация PHP позволяет включить ошибки таким способом (обычно он работает).

Важно! При таком способе включения ошибок, PHP ошибки допущенные в functions.php (файл куда мы вставили код) отображаться не будут!

 
Запись опубликована в 7:51 пп автором в рубрике WordPress с метками , , , , , , , , , , , , , , .

Добавление сайта в поисковые системы.Добавление сайта в поисковые системы.

Добавление сайта в поисковые системы Перечисляя поисковые системы, в которые […]

Геотаргетинг – простой способ увеличения конверсии.Геотаргетинг – увеличение конверсии.

Что такое геотаргетинг? Геотаргетинг — это скрипт, который подстраивает различные элементы […]

Как обезопасить WordPress.Как обезопасить WordPress.

Время от времени мы слышим о том, что хакеры взломали […]

Безопасность WordPress – эффективные способы защиты.WordPress – способы защиты.

На тему безопасности WordPress написано уже немало постов, предлагающих достаточно […]

Установка WordPress.Установка WordPress.

Установка WordPress обычно не вызывает никаких проблем. Основные требования к […]

Введение в WordPress.Введение в WordPress.

WordPress — идеальная платформа для публикации, ориентированная на красоту, поддержку […]

WordPress – создаем сайт с нуля.WordPress – создаем сайт с нуля.

Сегодня мы изучим основные принципы работы одной из самых популярных […]

Инструменты профессионала. Список валидаторов, Проверка сайта, Синтаксис кода, Проверка кода, Оптимизация сайтаВалидаторы — Проверка сайта на ошибки — Вебмастеру ассесору дизайнеру и СЕО оптимизатору

Привет вебмастера! Предлагаю вам инструменты для профессионального создания сайтов. Это […]

Как востановить забытый пароль от админки сайта.Как востановить забытый пароль от админки сайта.

Все мы люди, и можем просто забыть (как я) ту […]

Как установить WordPress?Как установить WordPress?

WordPress – самая популярная платформа блогов и систем управления взаимоотношениями […]

комментарииВаши замечания, предложения и вопросы оставляйте в комментариях или присылайте на почту web36@bk.ru, я буду рад узнать ваше мнение!


LPBuilder.pro | Бесплатный онлайн конструктор Landing PageНовый проект - Бесплатный онлайн конструктор с помощью которого можно создавать небольшие веб-сайты, лендинги, онлайн-резюме, портфолио, промо сайты... Испoльзуйте блoки в сoтнях кoмбинаций, прoстo дoбавляя oдин за другим, в интуитивнo пoнятнoм интерфейсе. Вы смoжете сoздать сайт свoими руками, воплощайте свои идеи!
Follow @elazukin