Yastr
@Yastr

Как в wordpress создать кастомные категории и в них поместить кастомные типы записей?

Задача следующая:
Создать 3 кастомные категории: Москва, Чехов, Звенигород
Создать 2 новых типа записей (может 6, в каждом городе по 2): Услуги, Специалисты
Поместить созданные типы в каждый из городов.

чтобы структура была следующая
/moskva/uslugi/ - архив со всеми услугами
/moskva/uslugi/oformlenie-medknizhek/ - отдельная страница услуги
/moskva/specialisti/hirurg/ - отдельная страница специалиста
/chehov/specialisti/psihiatr/ - отдельная страница специалиста
...

На скриншоте возможно будет понятнее.
5ac5015bb57dc227354891.png

Пытался сделать через кастомные таксономии, думал это работает как категории, но у меня получаются какие то метки.

Подскажите пожалуйста как правильнее это сделать.
  • Вопрос задан
  • 3281 просмотр
Пригласить эксперта
Ответы на вопрос 1
azerphoenix
@azerphoenix
Java Software Engineer
Здравствуйте!
Не буду писать весь код...
Расскажу вам основные моменты, которые вам стоит учесть

1) Регистрация таксономии и кастомного типа записи
add_action('init', 'register_post_types');
function register_post_types(){
register_taxonomy('objectcat', array('object'), array(
		'label'                 => 'Рубрики объектов',
		'labels'                => array(
			'name'              => 'Рубрики объектов',
			'singular_name'     => 'Рубрики объектов',
			'search_items'      => 'Искать рубрики',
			'all_items'         => 'Все рубрики',
			'parent_item'       => 'Родит. рубрика',
			'parent_item_colon' => 'Родит. рубрика:',
			'edit_item'         => 'Редактировать рубрику',
			'update_item'       => 'Обновить рубрику',
			'add_new_item'      => 'Добавить рубрику',
			'new_item_name'     => 'Заголовок',
			'menu_name'         => 'Рубрики объектов',
		),
		'description'           => 'Рубрики для объектов',
		'public'                => true,
		'show_in_nav_menus'     => true,
		'show_ui'               => true,
		'show_tagcloud'         => false,
		'hierarchical'          => true,
		'rewrite'               => array( 'hierarchical' => true ),
		'show_admin_column'     => true,
	) );
// Объекты
register_post_type('object', array(
		'label'  => 'Объект',
		'labels' => array(
			'name'               => 'Объекты',
			'singular_name'      => 'Объект',
			'add_new'            => 'Добавить новый',
			'add_new_item'       => 'Введите заголовок',
			'edit_item'          => 'Редактирование объекта',
			'new_item'           => 'Новый объект',
			'view_item'          => 'Посмотреть объект',
			'search_items'       => 'Искать объект',
			'not_found'          => 'Объектов не найдено',
			'not_found_in_trash' => 'В корзине объектов не найдено',
			'parent_item_colon'  => '',
			'menu_name'          => 'Объекты',
		),
		'description'         => 'Объекты',
		'public'              => true,
		'publicly_queryable'  => true,
		'exclude_from_search' => false,
		'show_ui'             => true,
		'show_in_menu'        => true,
		'show_in_admin_bar'   => true,
		'menu_position'       => 23,
		'menu_icon'           => 'dashicons-plus-alt', 
		'capability_type'   => 'post',
		'map_meta_cap'      => true,
		'hierarchical'        => false,
		'supports'            => array('title','thumbnail'),
		'taxonomies'          => array('objectcat', 'localcat'),
		'has_archive'         => true,
		'rewrite'             => array('slug' => 'objects', 'with_front' => false),
		'query_var'           => true,
	) );
}


Для кастомного типа записи сделайте 'rewrite' true чтобы включить в урл таксономию.
А в сам массив 'taxonomies' добавьте нужные вам таксономии (которые прежде всего нужно создать)
Ну и установите плагин ACF (для кастомных полей).
Не забудьте создать шаблоны с названиями:
single-кастомный_тип_записи.php
taxonomy-таксономия.php
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы