Статьи

Стиль различных категорий на вашем сайте WordPress по-разному с помощью CSS

Конечный продукт
Что вы будете создавать

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

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

Примером является веб-сайт London Times , который использует разные цвета для каждого раздела своего сайта. Главная страница использует эти цвета в баннере над каждым сообщением, как показано на скриншоте:

Скриншот сайта Times

И по мере продвижения по сайту, каждый раздел имеет свой цвет:

Раздел Times Arts

В этом уроке мы будем работать со стилем, добавленным на домашнюю страницу в предыдущем уроке, и добавим похожие стили для каждого архива категории. Мы изменим цвет заголовков постов и сам заголовок архива.

Чтобы следовать этому уроку, вам понадобится:

  • установка для разработки WordPress
  • редактор кода

Если у вас уже есть тема, для которой вы хотите использовать эту технику, вы будете работать над таблицей стилей вашей темы. Я собираюсь создать дочернюю тему для темы Twenty Fifteen и отредактировать таблицу стилей в моей дочерней теме.

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

Если вы уже следовали предыдущему руководству и добавляете стилизацию на основе категорий на свою главную страницу блога, вы можете использовать тему из этого руководства в качестве отправной точки — это то, чем я буду заниматься. В качестве альтернативы вы можете работать с существующей темой или создать новую дочернюю тему Twenty Fifteen.

Если вы работаете со своей собственной темой или темой из предыдущего урока, вы можете пропустить этот раздел, но вот что вам нужно сделать, чтобы создать дочернюю тему Twenty Fifteen.

В папке wp-content/themes вашего сайта создайте новую папку и дайте ей имя. Я называю мои tutsplus-style-posts-by-category .

Внутри этой папки создайте пустой файл CSS с именем style.css и добавьте в него следующее:

01
02
03
04
05
06
07
08
09
10
11
/*
Theme Name: Tuts+ Style Posts by Category
Theme URI: https://code.tutsplus.com/tutorials/style-posts-by-category-on-your-main-blog-page—cms-23684
Description: Theme to support tuts+ tutorial on styling posts by category.
Author: Rachel McCollin
Author URI: http://rachelmccollin.co.uk/
Template: twentyfifteen
Version: 1.0
*/
 
@import url(«../twentyfifteen/style.css»);

Это сообщает WordPress все, что нужно знать для создания дочерней темы, и импортирует таблицу стилей из Twenty Fifteen. Возможно, вы захотите добавить свое собственное имя и данные вместо моего, но это дает вам представление.

Теперь активируйте свою тему.

Если на вашем сайте уже есть сообщения, вы можете пропустить этот раздел, но здесь описано, как импортировать данные тестового модуля темы на ваш сайт.

  1. Перейдите на страницу « Theme Unit Test» и загрузите xml файл, на который есть ссылка.
  2. На вашем сайте перейдите в Инструменты> Импорт . Нажмите на ссылку WordPress .
  3. Нажмите на кнопку « Выбрать файл» и выберите файл, который вы только что скачали. Нажмите кнопку « Загрузить файл и импортировать» .
  4. Следуйте инструкциям и подождите, пока WordPress импортирует данные.

В WordPress есть пара тегов-шаблонов, которые выводят классы для ваших страниц и сообщений при их просмотре в браузере. Эти:

  • body_class() , который вы добавляете в тег body в файле header.php темы: он добавляет классы в элемент body соответствии с типом просматриваемой страницы.
  • post_class() , который работает аналогичным образом, но используется с post_class() в цикле.

Если вы работаете со своей собственной темой и еще не добавили эти теги шаблонов, вам необходимо это сделать. Из этого туториала вы узнаете, как работать с классами и идентификаторами, сгенерированными WordPress .

Если вы работаете с ребенком из темы «Двадцать пятнадцать», эти теги уже будут добавлены в саму тему «Двадцать пятнадцать», поэтому вам не нужно ничего делать.

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

Страница категории в браузере

Здесь у тега body есть классы, которые говорят нам, что это за страница:

1
<body class=»archive category category-markup category-29 logged-in admin-bar no-customize-support»>

Эти классы говорят нам, что мы находимся на странице архива категории для разметки, среди прочего. Класс, на который мы нацеливаемся, это класс category-markup категорий.

Мы начнем с добавления цвета к заголовкам постов в соответствии с их категориями. Добавьте в таблицу стилей вашей темы:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/* post titles in archive pages */
.archive.category-markup .entry-title a:link,
.blog .category-markup .entry-title a:visited {
    color: #6cd2c8;
}
.archive.category-markup .entry-title a:hover,
.blog .category-markup .entry-title a:active {
    color: #120e5b;
}
 
.archive.category-template-2 .entry-title a:link,
.archive.category-template-2 .entry-title a:visited {
    color: #e5572f;
}
.archive.category-template-2 .entry-title a:hover,
.archive.category-template-2 .entry-title a:active {
    color: #120e5b;
}
 
.archive.category-media-2 .entry-title a:link,
.archive.category-media-2 .entry-title a:visited {
    color: #933bbe;
}
.archive.category-media-2 .entry-title a:hover,
.archive.category-media-2 .entry-title a:active {
    color: #120e5b;
}

Возможно, вы захотите изменить цвета, чтобы они соответствовали вашему дизайну.

Теперь сохраните свою таблицу стилей и откройте страницу категории в своем браузере. Страница категории Моя разметка теперь имеет цветные заголовки сообщений:

Страница категории разметки с заголовками постов синего цвета

А в моем медиа-архиве есть заголовки постов другого цвета:

Медиа архив с фиолетовыми заголовками

Обратите внимание, что на скриншотах есть один пост, который появляется в обоих архивах, потому что он в большом количестве категорий. Вот почему важно указывать класс для категории в теге body вашей страницы архива, а не только для целевых классов категорий для сообщений в цикле.

Теперь давайте добавим границу. Добавьте это к вашей таблице стилей:

01
02
03
04
05
06
07
08
09
10
11
12
.archive.category-markup .entry-title {
    padding-top: 0.5em;
    border-top: 2px #6cd2c8 solid;
}
.archive.category-template-2 .entry-title {
    padding-top: 0.5em;
    border-top: 2px #e5572f solid;
}
.archive.category-media-2 .entry-title {
    padding-top: 0.5em;
    border-top: 2px #933bbe solid;
}

Это добавляет некоторые отступы над заголовками постов, а также границу того же цвета, что и текст. Вот как это выглядит на моей странице архива шаблонов:

Страница архива шаблонов с оранжевыми заголовками и рамкой

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

Сначала я определю элементы и классы для таргетинга, используя инструменты разработчика:

Страница с открытыми инструментами разработчика

Название архива выводится следующим образом:

1
2
3
4
5
6
<header class=»page-header»>
    <h1 class=»page-title»>Category: Template</h1>
        <div class=»taxonomy-description»>
            <p>Posts with template-related tests</p>
        </div>
</header><!— .page-header —>

Поэтому нам нужно настроить таргетинг на классы page-header page-title и page-header page-title , а также на классы тега body для архива.

В таблицу стилей добавьте следующее:

1
2
3
4
5
6
7
8
9
.archive.category-markup .page-header .page-title {
    color: #6cd2c8;
}
.archive.category-template-2 .page-header .page-title {
    color: #e5572f;
}
.archive.category-media-2 .page-header .page-title {
    color: #933bbe;
}

Это добавляет цвет к заголовку архива:

Название медиаархива фиолетовым

Теперь давайте изменим цвет границы, чтобы соответствовать. Добавьте это к вашей таблице стилей:

1
2
3
4
5
6
7
8
9
.archive.category-markup .page-header {
    border-left: 7px solid #6cd2c8;
}
.archive.category-template-2 .page-header {
    border-left: 7px solid #e5572f;
}
.archive.category-media-2 .page-header {
    border-left: 7px solid #933bbe;
}

Это изменяет цвет границы, чтобы соответствовать:

Название медиаархива и рамка фиолетового цвета

Использование классов, сгенерированных WordPress, для нацеливания на страницы архива категорий и их стилизации включает в себя определение выходных классов, а затем написание CSS для их нацеливания.

Из этого урока вы узнали, как это сделать, чтобы создать разделы вашего сайта с цветовой кодировкой по категориям.

Вы можете пойти дальше, например:

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

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