Как добавить класс в элемент HTML в зависимости от шаблона страницы?

Я пытаюсь добавить определенный класс layout-red в свой элемент div, если на странице используются файлы шаблонов section-about.php или section-contact.php. Если нет, добавьте класс layout-default.

Я пытался использовать тег is_template();, но потом попробовал get_page_template_slug(get_the_ID()

<?php 
    echo (get_page_template_slug);
    if ( get_page_template_slug(get_the_ID()) === 'section-about.php' ) {
        echo '<div id = "wrapper" class = "layout-red">';
    } else {
        echo '<div id = "wrapper" class = "layout-default">';
    }
?>

Я ожидал, что будет <div class = "layout-red">, но постоянно получаю <div class = "layout-default"> Если я вставлю var_dump(get_page_template_slug(get_the_ID())); перед enitre cl, он вернет строку (32) "template-parts/section-about.php"

Прежде чем делать это, вы можете попробовать var_dump(get_page_template_slug(get_the_ID())), чтобы увидеть, что на самом деле возвращается.

barell 13.02.2019 17:42

Не могли бы вы предоставить нам дополнительную информацию о возвратах get_page_template_slug() и так далее?

Riccardo Cedrola 13.02.2019 17:45

Он возвращается string(32) "template-parts/section-about.php"

Sai 14.02.2019 06:08
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать 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
3
206
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

Мы можем использовать приведенный ниже код для решения.

if ( basename(get_page_template_slug(get_the_ID()) === 'section-about.php' ) {
    echo '<div id = "wrapper" class = "layout-red">';
} else {
   echo '<div id = "wrapper" class = "layout-default">';
}

возвращает значение layout-red

Это сработало:

global $template; echo basename($template); //return string of current page template
if ( basename($template) === 'section-about.php' ) {...}

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