@Legal2019
Всё в имени моём... и радость и печаль...

Почему не подгружается шаблон для single?

Всем привет.
Пытаюсь разобраться...
Есть в структуре темы следующий вид:
Tema -> 
      -> Template
          -> Page
          -> Single
          -> файлы
      -> файлы

В файле function.php вставляем такой код, который подключает свой шаблон лежащий в папке:
add_filter('template_include', function ($path){
    if(is_singular(['aaaa'])){  // шаблон страницы "aaaa"
        return get_stylesheet_directory() .'/template/single/single-aaaa.php';
    }
    if(is_page([ 'test', 'tests'])){  // шаблон страницы "тесты"
        return get_stylesheet_directory() .'/template/page/page-test.php';
    }   
    return $path;
});

Страница записи выводится лишь когда файл шаблона лежит в /tema/single-aaaa.php и при создании записи выбираешь шаблон AAAA, т.к. в файле указано:
* Template Name: AAAA
* Template Post Type: post


1. Не могу понять, что и как прописать, чтобы файл не лежал бы в /tema/single-aaaa.php, а лежал бы и подключался бы из /template/single/single-aaaa.php
2. Пытался с вариантами:
if(is_singular(['aaaa'])){  // шаблон страницы "aaaa"
        return get_stylesheet_directory() .'/template/single/single-aaaa.php';
    }

и в таком виде:
if(is_single(['aaaa'])){  // шаблон страницы "aaaa"
        return get_stylesheet_directory() .'/template/single/single-aaaa.php';
    }
  • Вопрос задан
  • 72 просмотра
Решения вопроса 1
init0
@init0
Старый моряк
Вы пишите что 'aaaa' это
Название рубрики (категория) в стандартных записях.

А значит вы используете неправильное условие, is_singular "фильтрует" по типу записи, и у вас это post. Вам нужна другая функция, в вашем случае:

if ( is_singular( 'post' ) && is_object_in_term( get_the_ID(), 'category', 'aaaa' ) ) {
    return get_stylesheet_directory() . '/template/single/single-aaaa.php';
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Evdokim001
Начинающий PHP программист
Можно узнать тип поста с помощью функции get_post_type(). И если он равен нужному значению вывести нужный шаблон.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы