Привет. Странно, у меня всё нормально. Добавил код:
add_action( 'init', 'my_custom_init' );
function my_custom_init() {
register_post_type( 'book', [
'labels' => [
'name' => 'Книги', // Основное название типа записи
'singular_name' => 'Книга', // отдельное название записи типа Book
'add_new' => 'Добавить новую',
'add_new_item' => 'Добавить новую книгу',
'edit_item' => 'Редактировать книгу',
'new_item' => 'Новая книга',
'view_item' => 'Посмотреть книгу',
'search_items' => 'Найти книгу',
'not_found' => 'Книг не найдено',
'not_found_in_trash' => 'В корзине книг не найдено',
'menu_name' => 'Книги',
],
'public' => true,
'rewrite' => [ 'slug' => 'learn/books' ],
'supports' => [ 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' ],
] );
}
После добавление кода сбросил реврайты. Создал страницу "Обучение" (slug = learn), затем сделал дочернюю к ней страницу "Все книги" (slug = books). Теперь при обращении к wp-test.ru/learn/books/moya-pervaya-kniga/ открывается запись с post_type=book, а при обращении к wp-test.ru/learn/books/ открывается страница с post_type=page.
Правда я не особо понял желание сделать архив типа записи book в виде страницы. Какая цель?