Fetfurmoz
@Fetfurmoz
frontend

Taxonomy, как сделать одинаковый slug?

Уже голову сломал, не могу допереть , как реализовать.
Создал custom_post_type, к нему создал 3 taxonomy, у них у всех разный slug. Выводится эти 3 таксономии со своими категориями. У них у всех разны ссылки. Пример:
https://site/repetitor/matematika/
https://site/repetitor2/angliskij/
https://site/repetitor3/muzika/

Как мне сделать, что бы одинаковыми все были ?
https://site/repetitor/matematika/
https://site/repetitor/angliskij/
https://site/repetitor/muzika/

Может можно как то по другому реализовать ? помогите пжл. Не хочется все в одну таксономию пихать, много категорий и подкатегорий.
  • Вопрос задан
  • 76 просмотров
Решения вопроса 1
artzolin
@artzolin Куратор тега WordPress
php, WordPress разработка сайтов artzolin.ru
Я бы при регистрации типа записи с помощью функции register_post_type() указал аргумент 'has_archive' => 'repetitors', это общий архив для всех записей этого типа. Так же вам будет достаточно регистрации одной таксономии

add_action( 'init', 'education_register_post_type' );
function education_register_post_type() {

	// Taxonomy repetitor_cat.
	register_taxonomy( 'repetitor_cat', array( 'repetitor' ), array(
		'labels'             => array(
			'name'              => _x( 'Repetitor category', 'taxonomy general name', 'education' ),
			'singular_name'     => _x( 'Repetitor categories', 'taxonomy singular name', 'education' ),
			'search_items'      => __( 'Search Repetitor category', 'education' ),
			'popular_items'     => __( 'Popular Repetitor category', 'education' ),
			'all_items'         => __( 'All Repetitor categories', 'education' ),
			'parent_item'       => null,
			'parent_item_colon' => null,
			'edit_item'         => __( 'Edit Repetitor category', 'education' ),
			'update_item'       => __( 'Update Repetitor category', 'education' ),
			'add_new_item'      => __( 'Add new Repetitor category', 'education' ),
			'new_item_name'     => __( 'New Repetitor category name', 'education' ),
			'menu_name'         => __( 'Repetitor categories', 'education' ),
		),
		'public'             => true,
		'show_tagcloud'      => true,
		'hierarchical'       => false,
		'query_var'          => true,
		'show_in_quick_edit' => true,
		'sort'               => true,
	) );

	// Post type repetitor.
	register_post_type( 'repetitor', array(
		'labels'          => array(
			'name'               => __( 'Repetitors', 'education' ),
			'singular_name'      => __( 'Repetitor', 'education' ),
			'add_new'            => __( 'Add Repetitor', 'education' ),
			'add_new_item'       => __( 'Add new Repetitor', 'education' ),
			'edit_item'          => __( 'Edit Repetitor', 'education' ),
			'new_item'           => __( 'New Repetitor', 'education' ),
			'view_item'          => __( 'View Repetitor', 'education' ),
			'search_items'       => __( 'Search Repetitor', 'education' ),
			'not_found'          => __( 'Repetitor not found', 'education' ),
			'not_found_in_trash' => __( 'Repetitor not found in trash', 'education' ),
			'menu_name'          => __( 'Repetitors', 'education' ),
		),
		'public'          => true,
		'show_in_rest'    => true, // Включает Gutenberg.
		'capability_type' => 'post',
		'hierarchical'    => false,
		'has_archive'     => 'repetitors',
		'rewrite'         => array( 'slug' => 'repetitors', 'with_front' => false, 'pages' => true, 'feeds' => false, 'feed' => false ),
		'query_var'       => true,
		'supports'        => array( 'page-attributes', 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments', 'custom-fields' ),
		'taxonomies'      => array( 'repetitor_cat' ),
	) );
}


Если ваш вопрос касается больше ссылочной структуры, то в этих функциях вам пригодится аргумент rewrite и фильтры post_type_link и term_link
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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