Стилизация элементов только на главной странице
Я относительно новичок в WordPress, но уверен, что есть способ сделать то, что мне нужно.
У меня есть контейнер в шаблоне, и на главной странице я хотел бы указать немного другие отступы для этого элемента.
Мой текущий CSS выглядит следующим образом:
#main_content .container {
position: relative;
padding: 120px 0;
}
Я хотел бы уменьшить отступ до 80px, если это главная страница, в остальных случаях оставить как есть.
Это нужно делать внутри шаблона или существуют особые CSS-приемы, специфичные для WordPress, о которых я пока не знаю?
Исходя из моего небольшого опыта, я думаю, что должен иметь возможность определить, является ли страница is_home
или что-то подобное, и выбрать специальную таблицу стилей в файле header.php
для главной страницы. Предположительно, с использованием !important
после изменения padding в CSS.
Можете подсказать направление? Результаты, которые я нахожу через поиск, не совсем то, что я пытаюсь сделать.

Функция WordPress body_class($class)
— это удобный динамический способ загрузки стилей и JavaScript для определенного содержимого body. Если ваша тема не поддерживает body class, добавить их очень просто:
- Откройте файл
header.php
(или шаблон, содержащий тег<body>
) - Отредактируйте тег
<body>
, изменив его на<body <?php body_class(); ?>>
— готово! :)
Теперь, когда вы находитесь на:
- Главной странице (
Home
), ваш тег body будет отображаться как<body class="blog">
- Главной странице сайта (
Front Page
), ваш тег body будет отображаться как<body class="home">
- Странице отдельной записи блога (
single.php
), ваш тег body будет отображаться как<body class="single">
- Странице отдельной страницы (
page.php
), ваш тег body будет отображаться как<body class="page">
Теперь у вас есть полная свобода стилизации. Для внешней таблицы стилей, например, для главной страницы, ваш стиль может выглядеть так (как уже упомянул @saifur):
body.home #main_content .container {
position: relative;
padding: 120px 0;
}
Внутренний CSS
Для внутреннего CSS в WordPress есть условные проверки, такие как is_home()
и is_front_page()
. С их помощью можно определить, находитесь ли вы на главной странице блога или главной странице сайта, и затем загрузить внутренний CSS-код:
<?php if( is_home() || is_front_page() ) : ?>
<style id="my-internal-css">
#main_content .container {
position: relative;
padding: 120px 0;
}
</style>
<?php endif; ?>
Аналогично работают функции is_single()
, is_page()
, is_category()
, is_archive()
, is_day()
и другие.

Если вы находитесь на странице Home
, ваш тег body будет отображаться как <body class="blog"> вместо home
, а на Front Page
<body class="home"> вместо front-page
:
https://core.trac.wordpress.org/browser/tags/4.9.2/src/wp-includes/post-template.php#L570

@mayeenul Islam, я применил некоторые CSS-стили к классу ".page" для внутренних страниц. Но моя главная страница имеет оба класса ".home" и ".page". Как мне это обработать?
