raselgit
@raselgit
Веб-дизайнер

Как сделать общий файл с выводом записей и их категорий?

Создал новый тип записей "Работы"
Раскрыть код
// Works Post Type

add_action('init', 'register_post_type_works');

function register_post_type_works(){
	register_post_type('works', array(
		'label'  => null,
		'labels' => array(
			'name'               => 'Работы',
			'singular_name'      => 'Работа',
			'add_new'            => 'Добавить',
			'add_new_item'       => 'Добавление работы',
			'edit_item'          => 'Редактирование работы',
			'new_item'           => 'Новая работа',
			'view_item'          => 'Посмотреть работу',
			'search_items'       => 'Найти',
			'not_found'          => 'Не найдено',
			'not_found_in_trash' => 'Не найдено в корзине',
			'menu_name'          => 'Работы',
		),
		'public'              => true,
		'show_in_menu'        => true,
		'show_in_admin_bar'   => true,
		'menu_position'       => 9,
		'menu_icon'           => 'dashicons-pressthis',
		'hierarchical'        => true,
		'supports'            => array('title', 'editor', 'thumbnail'),
		'taxonomies'          => array('works-cat'),
		'has_archive'         => true,
		'rewrite'             => true,
		'query_var'           => true
	) );
}


и таксономию "Категории" для них
Раскрыть код
// Works Category

add_action('init', 'register_works_cat');

function register_works_cat(){
	register_taxonomy('works-cat', array('works'), array(
		'label'                 => '',
		'labels'                => array(
			'name'              => 'Категории',
			'singular_name'     => 'Категория',
			'all_items'         => 'Все',
			'view_item '        => 'Посмотреть категорию',
			'edit_item'         => 'Изменить категорию',
			'add_new_item'      => 'Добавить категорию',
			'new_item_name'     => 'Новая категория',
			'menu_name'         => 'Категории',
		),
		'public'                => true,
		'hierarchical'          => true,
		'rewrite'               => true,
		'show_admin_column'     => false
	) );
}


Затем создал страницу архива, где будут выводиться все работы ("archive-works.php"). Также на этой странице выводятся категории этих записей, по которым можно пройти.

Если открыть категорию, то открывается страница 404, потому что нет страницы архива для таксономии "Категории".
Дело в том, что страница для вывода записей и страница для категории - это одна и та же страница.

Можно ли как-то настроить таксономии под вывод записей на странице "archive-works.php" вместо того, чтобы создавать страницу "taxonomy-works-cat.php" с тем же самым кодом?
  • Вопрос задан
  • 55 просмотров
Решения вопроса 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
1. Попробуйте в фильтре template_include отловить по is_tax()
2. Или создайте все-таки оба темплейта по иерархии, а "повторяющийся код" вынесите в template_part.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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