Пользовательский шаблон типа Post Post не вызывается

Мой вопрос похож на несколько сообщений на этом сайте, но я еще не нашел решение моей конкретной проблемы.

Я пытаюсь реализовать архив для настраиваемого типа сообщений «ttwi_course». Я выполнил следующие шаги, которые я успешно выполнил на многих других сайтах:

  1. Я зарегистрировал CPT, код ниже
  2. Я создал шаблон архива, archive-ttwi_course.php
  3. Я создал single-ttwi_course.php
  4. Я создал страницу WordPress под названием «Курсы»,

Когда я посещаю страницу курсов ( http://localsite.dev/courses/ ), страница существует, но использует файл page.php вместо archive-ttwi_course.php. Когда я посещаю один пост ttwi_course ( http://localsite.dev/courses/course-1 ), он использует правильный шаблон single-ttwi_course.php. Я попытался удалить страницу WP Курсов, но http://localsite.dev/courses/ приводит к 404.

Обратите внимание, что я уже пробовал очищать постоянные ссылки, добавляя и удаляя flush_rewrite_rules(); после register_post_type( 'ttwi_course', $args ); , изменение тем, отключение плагинов и удаление всего кода из шаблона архива. Это, наверное, какая-то глупая проблема, но я еще ее не нашел.

Тип зарегистрированного сообщения:

 add_action( 'init', 'ttw_register_course_post_type' ); function ttw_register_course_post_type() { $labels = array( 'name' => __( 'Courses', 'ttwi-courses' ), 'singular_name' => __( 'Course', 'ttwi-courses' ), 'menu_name' => __( 'Courses', 'ttwi-courses' ), 'name_admin_bar' => __( 'Course', 'add new on admin bar', 'ttwi-courses' ), 'add_new' => __( 'Add New', 'ttwi-courses' ), 'add_new_item' => __( 'Add New Course', 'ttwi-courses' ), 'new_item' => __( 'New Course', 'ttwi-courses' ), 'edit_item' => __( 'Edit Course', 'ttwi-courses' ), 'view_item' => __( 'View Course', 'ttwi-courses' ), 'all_items' => __( 'All Courses', 'ttwi-courses' ), 'search_items' => __( 'Search Courses', 'ttwi-courses' ), 'parent_item_colon' => __( 'Parent Course:', 'ttwi-courses' ), 'not_found' => __( 'No courses found.', 'ttwi-courses' ), 'not_found_in_trash' => __( 'No courses found in Trash.', 'ttwi-courses' ) ); $args = array( 'labels' => $labels, 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'show_in_menu' => true, 'query_var' => true, 'rewrite' => array( 'slug' => 'courses' ), 'has_archive' => true, 'hierarchical' => false, 'menu_position' => 25, 'supports' => array( 'title', 'editor', 'thumbnail', 'excerpt', 'page-attributes' ) ); register_post_type( 'ttwi_course', $args ); } 

Solutions Collecting From Web of "Пользовательский шаблон типа Post Post не вызывается"

Все, что вы описываете, – это ожидаемое поведение, основанное на настройках регистрации типа публикации. Страница не будет загружать шаблон архива, я не уверен, почему вы ожидаете этого. Ваш аргумент rewrite argument предназначен только для отдельных сообщений. Параметр has_archive для true использует has_archive типа post в качестве местоположения архива, который является ttwi_course . Если вы хотите, чтобы архив был has_archive , тогда установите has_archive на courses .