Страница использует архив вместо назначенного шаблона
- Я создал страницу "Проекты" через админку WordPress
- Создал шаблон с названием "Projects"
- Назначил странице "Проекты" созданный шаблон Projects
Почему при переходе на страницу Projects отображается архивная страница вместо шаблона Projects?
Также, если я установлю страницу "Проекты" как "Страницу записей" в настройках → Чтение, то возникает описанная проблема. Но если не указывать страницу записей, то переход по /Projects работает нормально. Однако при переходе по /projects (в нижнем регистре) снова отображается архивная страница.
Я не понимаю, что происходит, может кто-то помочь?
Этот конфликт обычно возникает, когда архив пользовательского типа записи и обычная страница WordPress имеют одинаковый ярлык (slug). В этом случае архив пользовательского типа записи имеет более высокий приоритет.
Если у вас есть пользовательский тип записи с названием 'Projects' и для него установлен параметр 'has_archive' в значение true, то возникнет конфликт. Установите 'has_archive' в значение false, чтобы отображался шаблон страницы. Или вы также можете создать файл archive-[post-type].php и оформить его в соответствии с шаблоном вашей портфолио-страницы.

В моем случае мой пользовательский тип записи (custom post type) имел ярлык "projects", а ярлыки самих проектов были "2016", "2017" или "2018". Отдельные проекты были недоступны (например, /projects/2017) и перенаправляли сразу в архив типа записи.
После изменения ярлыка проекта на "project-2017" проекты стали доступны...
Я думаю, что возникает конфликт, когда ярлык состоит только из цифр...

Я столкнулся с проблемой на странице комитетов, у меня также был тип записи committee с таким же ярлыком (slug). Изменение ярлыка страницы или типа записи решит вашу проблему, также вы можете установить has_archive => false.
<i> register_post_type( 'committies',
// Параметры CPT
array(
'labels' => array(
'name' => __( 'Комитеты' ),
'singular_name' => __( 'Комитет' )
),
'public' => true,
'menu_icon' => 'dashicons-admin-users',
'has_archive' => false,
'rewrite' => array('slug' => 'committie'),
**'show_in_rest' => true,**
'supports' => array( 'title', 'thumbnail', 'revisions', ),
)
);</i>
