← Назад в «Блог»
75

Доработка wordpress сайта с темой для администратора

В этой статье я разберу, как можно дорабатывать wordpress-сайт с темой для администратора.

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

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

Достаточно делать это под администратором:

<? if (current_user_can( 'administrator' )): ?>
     // код, который будет виден только админу
     // можно положить сюда html, тег style и теги script     
<? endif; ?>

Но иногда, когда работаешь с базой, ошибки могут ломать весь сайт, независимо от того, что там стоит условие администратора.

Пользователи заходят и видят вот это:

Доработка wordpress сайта с темой для администратора 1

Не очень круто, и чем больше сайт, тем сложнее: php капризный малый.

К тому же хочется вести версии сайта. Мой сайт существует лет 6−7. И за это время сменилось 9 версий сайта. Я за эти 9 версий делал много крутых штук на сайте, а потом вырезал за ненадобностью. Но сейчас они могут мне понадобиться, а их уже нет.

Вот это хочется избежать. Пусть все 9 версий будут доступны мне в любой момент времени

Решение

Чтобы решить эту задачу, нужно создать другую тему и настроить её только для администратора. Там можно чудить без условий и ошибки не крашат сайт — проверял.

Это удобно, так как можно делать версии, мои темы называются вот так:

Доработка wordpress сайта с темой для администратора 2

Я кайфую от того, что я могу себе позволить переключиться на любую тему и забрать оттуда какой-нибудь код в новую тему.

Какой порядок действий

  • Дублируем тему, которая будет следующей версией
  • Добавляем и активируем плагин, который далает нужную нам тему только для администратора
  • Пишем название темы в плагин
  • Переключаем тему для всех

1 шаг — дублируем тему

Я пользуюсь программой FTP, вы пользуйтесь своими инструментами. Нам надо зайти в wp-content/themes/ и продублировать тему.

Доработка wordpress сайта с темой для администратора 3
Дублирую тему в WinSCP

После копирования темы не забудьте в новой теме зайти в styles.css и поменять название темы:

Доработка wordpress сайта с темой для администратора 4

Можно подумать, что темы раздуют ваш хостинг и место быстро закончится — нет и ещё раз нет. Темы содержат только файлы для оформления. Максимум изображения/иконки для самой вёрстки. Все остальное лежит в других местах Wordperss и не дублируется вместе с темой.

Доказательство:

Доработка wordpress сайта с темой для администратора 5

2 шаг — добавить плагин

Нам нужно попасть в папку wp-content/plugins. Создать там папку swith-theme и внутри создать файл swith-theme.php c таким содержимым:

<?
/*
Plugin Name: Отдельная тема для администратора
Description: Плагин изменяет тему для администратора.
*/

// вешаем на plugins_loaded, чтобы можно было определить пользователя
add_action('plugins_loaded', 'switch_theme_for');
function switch_theme_for(){
	// условия только для администраторов   
	if(!current_user_can('manage_options'))
		return;
	add_filter( 'template', 'custom_load_template' );
	add_filter( 'stylesheet', 'custom_load_template' );
}

/* Пишем тему, которая будет использоваться для администратора. 
Для юзеров будет использоваться та, что установлена на момент включения плагина */
function custom_load_template(){
	return 'THEME_NAME';
}

3 шаг — пишем название темы в плагин и активируем его

Строку 'THEME_NAME' нужно поменять на название вашей продублированой темы. У меня получилась вот такая строчка: return 'portfolio-v7.4'; Я копировал свою тему 7.3 и переименовал её на 7.4, а затем заменил название в коде.

Доработка wordpress сайта с темой для администратора 6

Так нужно будет делать каждый раз.

После этого переходите в список плагинов и активируйте его в списке

Доработка wordpress сайта с темой для администратора 7

4 шаг — переключаем тему для всех

Представим, что вы добавили что-то в коде и все протестировали. Теперь надо менять поставить её для всех.

Для этого нам нужно отключить плагин: «Отдельная тема для администратора"переходите в Внешний вид → Темы.

Почему это нужно делать? Когда вы поставите новую тему для себя, админка будет показывать так, якобы тема активна для всех. А как можно активировать уже активированную тему? 🙂

Когда мы отключим плагин, тема для администратора перестанет быть активной и мы сможем её активировать.

Доработка wordpress сайта с темой для администратора 8
Список моих тем

Полезно
1
Непонятно
Поделиться
Отправить
Линкануть
Вотсапнуть
← Назад в «Блог»

Добавить комментарий

Ваш адрес email не будет опубликован.