Я пытаюсь добавить определенный класс 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"
Не могли бы вы предоставить нам дополнительную информацию о возвратах get_page_template_slug() и так далее?
Он возвращается string(32) "template-parts/section-about.php"






Мы можем использовать приведенный ниже код для решения.
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' ) {...}
Прежде чем делать это, вы можете попробовать var_dump(get_page_template_slug(get_the_ID())), чтобы увидеть, что на самом деле возвращается.