Не подключается шаблон к странице Wordpress
На сайте использую четыре раздела с одним шаблоном (копии, надо же post_type менять для каждого раздела, имя шаблона тоже меняю). На двух страницах шаблон подключился, на двух других нет.
<?php
/*
* Template name: Статьи
*/
get_header();
$my_blog = get_posts([
'numberposts' => -1,
'orderby' => 'date',
'order' => 'DESC',
'post_type' => 'stati',
]);
?>
<?get_template_part("components/templates/blog", null, $my_blog)?>
Вместо данного шаблона подключается файл index.php. Проверял в БД в таблице wp_postmeta, на всех четырёх страницах указан правильный путь до файла, значит файл они видят, но подключают почему-то только два. Подсказали прописать в function.php такое подключение
add_filter('template_include', 'template_custom_include');
function template_custom_include($template) {
if (get_the_ID() == 219) {
return get_stylesheet_directory() . 'templates/template-stati.php';
} else {
}
return $template;
}
Но оно так же не сработало. На одной из страниц, где шаблон показывается, была проблема, которую я устранил путём пересоздания "Ярлыка URL". На этих двух страницах сколько бы я не пересоздавал их, не подключается. Не знаю важно это или нет, эти разделы мною созданные post_type, приложу ещё код их регистраций. Статьи не подключают шаблон, Акции подключили.
<? add_action('init', function(){
register_post_type('stati', [
'labels' => [
'name' => __('Статьи'),
'singular_name' => __('Статья'),
'add_new' => __('Добавить статью'),
'add_new_item' => __('Добавление статьи'),
'edit_item' => __('Редактирование статьи'),
'new_item' => __('Новая статья'),
'view_item' => __('Смотреть статью'),
'search_items' => __('Искать статьи'),
'not_found' => __('Не найдено'),
'parent_item_colon' => __(''),
'menu_name' => __('Статьи'),
],
'public' => true,
'menu_icon' => 'dashicons-edit-large',
'supports' => ['title','editor','thumbnail'],
'has_archive' => 'stati',
'rewrite' => true,
'query_var' => true,
]);
register_post_type('akcii', [
'labels' => [
'name' => __('Акции'),
'singular_name' => __('Акция'),
'add_new' => __('Добавить акцию'),
'add_new_item' => __('Добавление акции'),
'edit_item' => __('Редактирование акции'),
'new_item' => __('Новая акция'),
'view_item' => __('Смотреть акцию'),
'search_items' => __('Искать акцию'),
'not_found' => __('Не найдено'),
'parent_item_colon' => __(''),
'menu_name' => __('Акции'),
],
'public' => true,
'menu_icon' => 'dashicons-awards',
'supports' => ['title','editor','thumbnail'],
'has_archive' => 'akcii',
'rewrite' => true,
'query_var' => true,
]);
});
Ответы (1 шт):
Разобрался в чём проблема. Проблема была в том, что slug и post_type у меня имели одинаковые значения. В вопросе я упоминал, что на одной странице проблема решилась тем, что я свой slug сбросил до генерируемого. Тогда же я сделал тоже самое и на других страницах, но там это не помогло. Теперь я выяснил, что slug и post_type не могут быть одинаковыми. Я полагаю, что это может только для русских версий движка, потому как мой коллега делает сайт, он не переключал язык движка на русский, у него slug и post_type могут иметь одинаковые значения и все шаблоны подключаются без проблем. Я не знаю как это работает