single- {cpt} .php игнорируется

Я создал плагин, который регистрирует собственный тип сообщения с именем evento_type:

register_post_type( 'evento_type', ... 

Страница архива CPT – archive-evento_type.php, и она сохраняется в корневом каталоге плагина. Отлично работает. Я думаю, что единственная страница страницы CPT должна быть названа single-evento_type.php и что она должна быть сохранена в корневой директории плагина, как на странице архива. Я создал single-evento_type.php, но WordPress продолжает игнорировать его и вместо этого использует почтовую страницу по умолчанию, независимо от того, сколько

 flush_rewrite_rules(); 

Я разбросаю по всему коду, и сколько раз я принудительно восстанавливаю постоянную связь, вручную переключая параметры постоянных ссылок. WP продолжает использовать мою страницу архива CPT (это правильно) и счастливо игнорирует мою единственную страницу.

Я использую WP 4.4.1 и тему Wiz, если это имеет значение. Я много разбираюсь в этой проблеме, но каждое решение, которое я нашел до сих пор, – это удаление правил перезаписи или двойного тройного миллиарда – проверка имен файлов, которые я уже сделал.

Как заставить WP использовать мой single-evento_type.php вместо значения по умолчанию?

EDIT после комментария Майло: Интересно, как я мог быть настолько слепым. WP также не загружает шаблон архива, потому что я искусственно создаю страницу архива со стандартной страницей и коротким кодом … Я забыл об этом, er …, detail, и я предполагал, что WP был автоматически найден мой файл archive-evento-type.php …

Любой файл шаблона должен находиться в текущей папке с активной темой. Если они находятся в другом месте, они не будут автоматически загружены, вместо этого вам необходимо будет скопировать и изменить расположение файла шаблона, определяемое системой шаблонов WordPress:

 add_filter( 'template_include', 'envento_type_templates', 99 ); function portfolio_page_template( $template ) { if ( is_archive( 'evento_type' ) ) { // Full path to archive-evento_type.php file in // the plugin directoy $template = plugin_dir_path( __FILE__ ) . 'archive-evento_type.php'; } if ( is_singular( 'evento_type' ) ) { // Full path to single-evento_type.php file in // the plugin directoy $template = plugin_dir_path( __FILE__ ) . 'single-evento_type.php'; } return $template; } 

Вы также можете использовать locate_template() чтобы проверить, существует ли файл шаблона в теме. Это позволит разработчикам темы переопределять макет по умолчанию и создавать созданные им плагины.

 add_filter( 'template_include', 'envento_type_templates', 99 ); function portfolio_page_template( $template ) { if ( is_archive( 'evento_type' ) && ! locate_template( 'archive-evento_type.php' ) ) { // Full path to archive-evento_type.php file in // the plugin directoy $template = plugin_dir_path( __FILE__ ) . 'archive-evento_type.php'; } if ( is_singular( 'evento_type' ) && ! locate_template( 'single-evento_type.php' ) ) { // Full path to single-evento_type.php file in // the plugin directoy $template = plugin_dir_path( __FILE__ ) . 'single-evento_type.php'; } return $template; } 

PD: он не имеет ничего общего с permalinks.