
Выходной каталог для шаблонного тега Ворд Пресс post_class включает имена класса практически для каждого возможного типа просмотра страниц:
- page-parent (страница-родительский элемент)
- search-results (поиск-результаты)
- logged-in (регистрация)
- author (автор)
- paged (выгрузка)
Плюс практически все остальное за исключением ID информации. Это дает некоторые хорошие классовые названия со спецификой категорий, но ничто не представляет категорию идентификаторов. Например, включая функцию post_class как эта в вашей разметке:
1 |
<div <?php post_class(); ?>> |
Этот выход выглядит так в вашем исходном HTML коде
1 |
<div class="post-5 post hentry category-uncategorized tag-demo tag-site tag-test tag-themes tag-typography"> |
Так, если вы хотите знать настоящие имена категорий это необязательно, но для развития темы важно уметь обобщать отличия категорий и иметь их в доступе как имена классов. Почему? Потому что в этом случае дизайнер тем может использовать стили со спецификой категорий очень просто, и не нужно путаться с именами настоящих категорий.
Например, если бы нам было доступно первое имя категории для каждого доступного поста как имя класса, мы могли бы делать что то смешное, наподобие этого, в нашем унифицированном списке команд:
1 2 3 4 5 6 7 8 9 10 |
div[class$="0"] selector { color: red; } div[class$="1"] selector { color: blue; } div[class$="2"] selector { color: green; } div[class$="3"] selector { color: brown; } div[class$="4"] selector { color: orange; } div[class$="5"] selector { color: yellow; } div[class$="6"] selector { color: purple; } div[class$="7"] selector { color: white; } div[class$="8"] selector { color: black; } div[class$="9"] selector { color: gold; } |
Генерализированная избирательность со спецификой категорий разрешает нам разнообразить и улучшить наш дизайн без предположений и требований, чтобы пользователь темы не суетился с чрезмерно сложными настройками.
Так, чтобы включить первую категорию ID каждого поста в вывод post_class, нам в первую очередь нужны ID категории как матрица, которые мы можем получить из этого тега:
1 |
get_the_category(); |
Затем нам нужно вычленить первый ID из матрицы:
1 |
$category[0]->cat_ID; |
… а потом сделать его функцией и добавить к функциям вашей темы:
1 2 3 4 5 |
// get the first category id function get_first_category_ID() { $category = get_the_category(); return $category[0]->cat_ID; } |
Заметим, что ID категории чередуются в матрице численно, и мы можем получить это в любой позиции в последовательности, меняя «0» ( который возвращается первым ID) на любой номер.
Сейчас, чтобы включить нашу первую категорию ID с помощью post_class, мы можем сделать что-то такое в наших шаблонных файлах темы:
1 |
<div <?php post_class('cat-'.get_first_category_ID()); ?>> |
Этот код будет включать идентификатор категории в выводе вот так
1 |
<div class="post-5 post hentry category-uncategorized tag-demo tag-site tag-test tag-themes tag-typography cat-3"> |
Заметили дополнительное имя класса «cat-3»? Оно будет соотноситься с первой ID категорией поста, давая вам возможность определить специфические настройки дизайна категорий без обращения к именам категорий.