WordPress как на ладони
Очень Удобный и Быстрый Хостинг для сайтов на WordPress. Пользуюсь сам и вам рекомендую!

Замена темы (шаблона) на лету, только для администратора

Есть активно работающий сайт - постоянно добавляются статьи, идут комментарии.

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

Вот и возник вопрос: как сделать так, чтобы активировать новую тему только для администратора (или специально созданного пользователя с правами администратора).
Чтобы настраивая новый, ни чего не менялось в выводах старого?

0
ims
9.5 лет назад 3
  • 2
    Kama9618

    Нашел такой вариант:

    function my_custom_theme() {
    	return 'twentytwelve';
    }
    
    add_filter( 'template', 'my_custom_theme' );
    add_filter( 'stylesheet', 'my_custom_theme' );

    Тут используются 2 фильтра template (фильтрует имя текущей темы) и stylesheet (фильтрует название текущих стилей). Указываем для фильтров название необходимой темы twentytwelve.

    Хук должен быть расположен до подключения functions.php темы, т.е. должен быть плагином.

    Конкретно для вашего случая:

    Создаем плагин: создаем файл switch_theme.php с таким кодом:

    <?php
    /*
    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', 'my_custom_theme' );
    	add_filter( 'stylesheet', 'my_custom_theme' );
    }
    
    function my_custom_theme() {
    	return 'twentytwelve';
    }

    Закидываем файл в папку плагинов, активируем плагин в админке. Название темы для админа меняем в custom_load_template().

    campusboy 9.1 год назад

    Тимур, добавь это к себе в авторские плагины - это же круто. Находка для разработчика. Тот вариант, что я советовал человеку рабочий, но этот не просто рабочий, а ещё и крайне удобный! Спасибо большое автору за вопрос, а тебе за прекрасное решение.

    Kama 9.1 год назад

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

    campusboy 9.1 год назад

    Я сохранил в php файле и засунул в папку с плагинами. А из настроек в голову приходит лишь выбор используемой темы для админа. Но это так, мысли smile Насчет смысла, ты и прав. Кому надо, то сделает как я, к примеру. Кстати, вот у человека сессия сбивалась, а у меня сбились некоторые настройки некоторых плагинов. Не знаю, почему: то ли из за этого кода, то ли потому что просто сменил тему. Кстати, виджеты также послетали.

    Андрей 8 лет назад

    А текущие настройки виджетов и прочее не послетает при переключении?

    Денис 4.6 лет назад

    Спасибо, помогло!

    Комментировать
  • 0

    При активации такого плагина сессия постоянно слетает, и приходится перелогиниваться

    Kama 9.5 лет назад

    Изменил код в ответе. У меня и с прошлым сессия не слетела и с этим все норм...

    Комментировать
  • 0
    campusboy4752 www.youtube.com/c/wpplus

    Я бы скорее всего скачал весь сайт вместе с базой на компьютер и экспериментировал на локалхосте.

    ims 9.4 года назад

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

    campusboy 9.4 года назад

    Вы же шаблон разрабатываете/модернизируете, зачем Вам свежие комментарии и статьи для этого? Скачали дамп на локальный сервер и работаете со старыми комментами и статьями, тут же для разработки шаблона главное чтобы они вообще были, чтобы внешне выглядит как всё отрабатывается и отображается. А какие проблемы с переносом шаблона? Что получилось копируете на сервер (лишь папку с шаблоном). Да, скорее всего настройки в админке темы могу сброситься. Но сколько я тем так переносил - выставить их обратно не составляет труда, пара минут, даже меньше. Зато таким образом вы совершенно ничем не рискуете.

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация