[Решено] Разное оформление для разделов сайта

Аватар пользователя Apelsinova Apelsinova 4 июня 2012 в 17:53

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

Пока вижу такой вариант решения. Проверять url текущей страницы. Если он начинается с заданной фразы, добавлять к body определённый класс. И уже css прописывать с указанием класса body. Механизм реализован через preprocess_html в template.php.

Возможно, есть какой-то более оптимальный путь решения?

Комментарии

Аватар пользователя VasyOK VasyOK 4 июня 2012 в 18:26

Если умеете то делайте.
А вообще 2 ссылки дайте и конкретные примеры что исправить хотите говорите.

Аватар пользователя Apelsinova Apelsinova 4 июня 2012 в 18:33

Сейчас сделано через preprocess_html. Запрашиваем путь, каждый уровень вложенности делаем классом для body. И дальше в css добавляем иерархию, основанную на классах body.
Что конкретно менять - нет смысла перечислять. Суть в смене цветового оформления. Фоновый рисунок, фоновый цвет, цвета текста, ссылок и границ. Довольно много элементов. Планирую вынести их в отдельные .css для своего удобства.

Вопрос в том, насколько правилен сам путь решения - использование preprocess_html и запрос request_path. Почему-то мне этот метод кажется не очень удачным.

Аватар пользователя Shok211 Shok211 4 июня 2012 в 22:18

Ну всё зависит от архитектуры сайта.

Мой вариант

Если действительно много разных страниц, то делайте через шаблоны типов материалов.Даже при 10 - 20 различных разделах проще потом работать с файлами шаблонов. А не единственным препроцессом.

Аватар пользователя Apelsinova Apelsinova 4 июня 2012 в 22:22

Один тип материала может принадлежать разным разделам (при желании этого можно избежать, если будет необходимость). В одном разделе могут быть разные типы материалов. К разделам относятся не только материалы, но и страницы терминов таксономии.

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

Аватар пользователя VasyOK VasyOK 4 июня 2012 в 22:36

"Apelsinova" wrote:
Не будет ли это увеличением нагрузки?

на хостингах за 30 руб/мес падений производительности не наблюдаю. Хотя ни не замерял.

Аватар пользователя Apelsinova Apelsinova 27 июня 2012 в 21:25

WiseMan wrote:
как решили, подытожте, пжта.

Остановилась на коде:

function WPtheme_preprocess_html(&$vars) {
        $request_path_array = explode('/', request_path());
        if ($request_path_array)
        {
                $vars['classes_array'][] = $request_path_array[0];
        }
}

Поверяет адрес странницы и первую его часть добавляет к классам body. В css к нужным селекторам добавляю родителя body.class.