Wordpress - добавить класс в главный div на определенной странице

У меня есть определенная страница, на которой мне нужно просто изменить цвет фона только на этой странице, и эта структура страницы начинается так:

<body class = "...">
   <div class = "start-class">
      ......
   </div>
</body>

и я думал поставить functions.php как:

add_filter( 'body_class', 'my_css');
function my_css( $classes ) {
     if ( is_page(82) )
        find div that has specific "start-class" because it doesn't have any id
          $classes[] = 'my-custom';
 
     return $classes; 
}

есть ли способ добавить это?.. спасибо всем!! Ваше здоровье!

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
96
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Если вы измените / добавите следующий php-код в свой тег body в файле header.php...

<body <?php body_class(); ?> >

... Wordpress автоматически добавит «классы тела», среди которых page-id-xxx, где «xxx» означает индивидуальный идентификационный номер для каждой страницы, который соответствует идентификатору страницы в базе данных. Затем вы можете создать правило CSS с background-color для этого идентификатора (#page-id-xxx { background-color: #abc; } и добавить его либо в общую таблицу стилей, либо через настройщик только на эту страницу.

Привет @Johannes, спасибо за ваш ответ, но я имел в виду, например, добавить новый класс внутри <div> элемента рядом с этим "start-class", например, заменить его, потому что этот div уже покрывает всю страницу ....

Luigino 30.03.2023 13:22

Я знаю, что вы это имели в виду, но в CSS нет селекторов для родительских элементов, поэтому описанный способ — это один из способов все-таки добиться желаемого результата. Другим было бы использование jQuery/javascript, но только css невозможно.

Johannes 30.03.2023 13:25

Тогда используйте .page-id-xxx .start-class { ... }.

CBroe 30.03.2023 13:32

@CBroe Ну, OP написал «найти div с определенным начальным классом, потому что у него нет идентификатора», поэтому, очевидно, идентификатора страницы еще нет, поэтому мой ответ ...

Johannes 30.03.2023 13:38

@Johannes Я думаю, они имели в виду, что сам элемент .start-class не имеет определенного идентификатора. Вызов body_class() для добавления классов в тело является де-факто «стандартом», которого придерживается почти каждая тема.

CBroe 30.03.2023 13:56

@Johannes, этот ‵<div>‵ покрывает все тело, как тело находится за ‵<div>‵ , на самом деле я уже пытался добавить новый класс в тело, используя ‵add_filter( 'body_class', 'my_css'); ‵ и не применил ‵background-color #red !важно;‵ вещь ... с отладкой хрома я вижу, что тело находится за div ....

Luigino 30.03.2023 14:57

Ну, можете использовать .page-id-xxx .start-class { background-color: red !important; }, если у вас уже есть идентификатор страницы. В этом случае просто убедитесь, что там есть двоеточие (:), а не #red, как вы это сделали, а либо red без «#», либо шестнадцатеричный код, например #ff0000, для определения цвета). Если у вас еще нет идентификатора страницы в body, используйте метод, который я описал в своем ответе дополнительно.

Johannes 30.03.2023 15:54

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

add_filter('body_class', 'custom_body_class');

    function custom_body_class($classes) {
        if (is_page(38034))
            $classes[] = 'new-class';
        return $classes;
}

На основе пользовательского класса вы можете изменить цвет фона определенных страниц. Также посетите https://developer.wordpress.org/reference/functions/body_class/

Ответ принят как подходящий

В конце я решил применить полную прозрачность на всех уровнях элементов контейнера внутри тела с помощью:

background-color:rgba(0,0,0,0.0) !important;

везде, где это применимо, чтобы я мог использовать только фон внутри тела с этим add_filter( 'body_class', 'my_css'); Я сказал в посте, чтобы облегчить мою жизнь ... в любом случае спасибо всем @Johannes , @Broe , @Rahul Srivastava ! Ваше здоровье !!!

Другие вопросы по теме