WordPress: Как добавить директорию для поиска шаблонов?

Как известно мы можем подключать шаблоны к созданным страницам. Мы просто в начале файла в комментариях указываем Template name: Имя шаблона. После кладем его в директорию например /pages и после в админке указываем созданный шаблон для страницы.

Моя проблема: Мои шаблоны лежат по пути templates/pages/ и wordpress не видит мои шаблоны. Так как он не видит шаблоны которые лежат на 2м/3ем уровне директорий

Попытки решения: Я нашел вот такой способ который возвращает имена файлов, а не названия шаблонов.

add_filter( 'theme_page_templates', function( $templates ){
    $templates_dir = 'templates/pages/';
    $templates_files = scandir(locate_template($templates_dir));

    foreach ( $templates_files as $file ) {
        if ( $file == '.' || $file == '..') continue;
        $name = explode('.', $file);
        $templates[$templates_dir.$file] = $name[0];
    }
    return $templates; 
});

Вопрос: Как можно переделать мой код чтобы он возвращал названия шаблонов или может есть другой более удобный способ?


Ответы (1 шт):

Автор решения: SeVlad

Шаблоны темы находятся в её корне. Но в них можно подключать части, находящиеся в подкаталоге с помощью get_template_part

Например

get_template_part( 'inc/nav' ); // подключит файл inc/nav.php
→ Ссылка