У меня есть настраиваемый тип сообщений под названием « Treatment
.
Из моего понимания WordPress archive.php
всегда будет использоваться, если не существует archive-{posttype}.php
.
По какой-то причине страница архива вместо этого использует landing-page.php
(мой шаблон главной страницы), и я не могу заставить его использовать что-либо еще. Даже с archive.php
и archive-treatment.php
.
Любые идеи относительно того, что происходит?
has_archive
установлен, и я определенно просматриваю правильный URL. Если я установил has_archive
в false
он станет ошибкой 404.
Вот мой register_custom_post_type()
для Обработок:
function register_custom_post_type() { register_post_type( 'treatment', array( 'labels' => array( 'name' => _x( 'Treatments', 'post type general name', 'nsc-treatments' ), 'singular_name' => _x( 'Treatment', 'post type singular name', 'nsc-treatments' ), 'menu_name' => _x( 'Treatments', 'admin menu', 'nsc-treatments' ), 'name_admin_bar' => _x( 'Treatment', 'add new on admin bar', 'nsc-treatments' ), 'add_new' => _x( 'Add New', 'treatment', 'nsc-treatments' ), 'add_new_item' => __( 'Add New Treatment', 'nsc-treatments' ), 'new_item' => __( 'New Treatment', 'nsc-treatments' ), 'edit_item' => __( 'Edit Treatment', 'nsc-treatments' ), 'view_item' => __( 'View Treatment', 'nsc-treatments' ), 'all_items' => __( 'All Treatments', 'nsc-treatments' ), 'search_items' => __( 'Search Treatments', 'nsc-treatments' ), 'parent_item_colon' => __( 'Parent Treatment:', 'nsc-treatments' ), 'not_found' => __( 'No treatment found.', 'nsc-treatments' ), 'not_found_in_trash' => __( 'No treatment found in Trash.', 'nsc-treatments' ), ), // Frontend 'has_archive' => 'cosmetics/treatments', 'public' => false, 'publicly_queryable' => false, // Admin 'capability_type' => 'post', 'menu_icon' => 'dashicons-screenoptions', 'menu_position' => 10, 'query_var' => true, 'show_in_menu' => true, 'show_ui' => true, 'supports' => array( 'title', 'author', ), ) );
Я также попытался изменить has_archive => 'cosmetics/treatments'
:
'has_archive' => 'true', 'rewrite' => array( 'slug' => 'cosmetics/treatments' ),
Как я видел в других ответах, связанных с этой темой.
Тема основана на Underscores без каких-либо изменений под капотом. Добавлены только CSS, шаблоны и пользовательские типы сообщений.
После каждого изменения я перезагрузил постоянные ссылки.
Любая помощь очень ценится, поскольку я все еще довольно новичок в WordPress
В вашей функции register_post_type
вы устанавливаете для publicly_queryable
public
флагов publicly_queryable
и public
флаги. Если вы не сделаете свой post_type
и public
, front-end просто проигнорирует его.
Источник: developer.wordpress.org