@rootnoroot

Как задать шаблон для таксономий?

есть тип записей cases
register_post_type( 'cases', array(
	'label' => null,
	'labels' => array(
			'name' => 'Cases',
			'singular_name' => 'Cases',
			'add_new' => 'Add material',
			'add_new_item' => 'Adding material',
			'edit_item' => 'Editing material',
			'new_item' => 'New material',
			'view_item' => 'View material',
			'search_items' => 'Search material',
			'not_found' => 'Not found',
			'not_found_in_trash' => 'Not found in cart',
			'parent_item_colon' => '',
			'menu_name' => 'Cases',
	),
	'description' => '',
	'public' => true,
	'show_in_menu' => true,
	'show_in_rest' => true,
	'supports' => array( 'title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'title', 'editor', 'comments', 'thumbnail' ),
	'taxonomies' => array( 'case_category', 'post_tag' ),
	'has_archive' => true,
	'rewrite' => true,
	'query_var' => true,
));

// Регистрация таксономии
register_taxonomy(
	'case_category',
	'cases',
	array(
			'label' => __( 'Case Categories' ),
			'rewrite' => array( 'slug' => 'case-category' ),
			'hierarchical' => true,
			'show_in_rest' => true,
			'template' => array(
					'archive-cases.php',
					'archive-cases.php',
			),
	)
);


при переходе по /cases
все ок, цепляет шаблон archive-cases.php
но пройдя по рубрикам нифига не могу прицепить этот же шаблон
как его прикрутить?

function custom_cases_template( $template ) {
    if ( is_tax('case_category') && is_post_type_archive('cases') ) {
        return get_template_directory() . '/archive-cases.php';
    }

    return $template;
}
add_filter( 'template_include', 'custom_cases_template' );


function custom_cases_template( $template ) {
    if ( is_tax('case_category') && locate_template( array( 'archive-cases.php' ) ) !== '' ) {
        return get_template_directory() . '/archive-cases.php';
    } elseif ( is_tax('case_category') ) {
        return get_template_directory() . '/archive-cases.php';
    }

    return $template;
}
add_filter( 'template_include', 'custom_cases_template' );
  • Вопрос задан
  • 61 просмотр
Пригласить эксперта
Ответы на вопрос 2
Попробуйте сначала регистрировать таксономию, потом тип записи
И при регистрации типа записи укажите
'hierarchical' => true,

Важно: после создания нового типа записи. Обязательно нужно зайти на страницу Настройки → Постоянные ссылки. Нужно это для того, чтобы правила ЧПУ были пересозданы и туда были добавлены правила нового типа записи.

register_post_type()
register_taxonomy()
Ответ написан
pLavrenov
@pLavrenov
Разработка сайтов
Не правильно просто брать и заставлять использовать шаблон. Есть логичная структура и лучше использовать ее. Для таксономии сделать шаблон taxonomy-case_category.php а для переиспользования контента вынести его в другие файлы и включить в оба шаблона.

Для таксономии:
'query_var' => true,
'has_archive' => true,
'show_in_rest' => true,
'rewrite' =>  [
    'slug' => 'cases',
],
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы