Блог

Custom Post Types — добавляем свои категории и теги

Иногда нужно к произвольным типам записей добавить свои категории\рубрики или теги, чтобы они не мешались с общими категориями и тегами.

Ниже представлен код как можно создать теги для своих произвольных постов:

add_action( 'init', 'portfolio_tags_init' );
function portfolio_tags_init() {
    // Добавляем НЕ древовидную таксономию 'writer' (как метки)
	register_taxonomy(
		'writer', 
		'my_posts_name',
		
		array(
		'hierarchical'  => false,
		'labels'        => array(
			'name'                        => _x( 'Метки портфолио', 'taxonomy general name' ),
			'singular_name'               => _x( 'Метки', 'taxonomy singular name' ),
			'search_items'                =>  __( 'Поиск по меткам' ),
			'popular_items'               => __( 'Популярные метки' ),
			'all_items'                   => __( 'Все метки' ),
			'parent_item'                 => null,
			'parent_item_colon'           => null,
			'edit_item'                   => __( 'Редактировать метку' ),
			'update_item'                 => __( 'Обновить метку' ),
			'add_new_item'                => __( 'Добавить новую метку' ),
			'new_item_name'               => __( 'Название новой метки' ),
			'separate_items_with_commas'  => __( 'Separate writers with commas' ),
			'add_or_remove_items'         => __( 'Добавить или удалить метку' ),
			'choose_from_most_used'       => __( 'Выберете из самых популярных меток' ),
			'menu_name'                   => __( 'Метки' ),
		),
		'show_ui'       => true,
		'query_var'     => true,
		//'rewrite'       => array( 'slug' => 'the_writer' ), // свой слаг в URL
	));
}

Вместо «my_posts_name» укажите название ваших произвольных полей.

Аналогичный пример, только уже для категорий\рубрик:

add_action( 'init', 'create_book_taxonomies' );

	// Добавляем НЕ древовидную таксономию 'writer' (как метки)
	register_taxonomy(
                'writer', 
                'my_posts_name',
  
                array(
		'hierarchical'  => false,
		'labels'        => array(
			'name'                        => _x( 'Writers', 'taxonomy general name' ),
			'singular_name'               => _x( 'Writer', 'taxonomy singular name' ),
			'search_items'                =>  __( 'Search Writers' ),
			'popular_items'               => __( 'Popular Writers' ),
			'all_items'                   => __( 'All Writers' ),
			'parent_item'                 => null,
			'parent_item_colon'           => null,
			'edit_item'                   => __( 'Edit Writer' ),
			'update_item'                 => __( 'Update Writer' ),
			'add_new_item'                => __( 'Add New Writer' ),
			'new_item_name'               => __( 'New Writer Name' ),
			'separate_items_with_commas'  => __( 'Separate writers with commas' ),
			'add_or_remove_items'         => __( 'Add or remove writers' ),
			'choose_from_most_used'       => __( 'Choose from the most used writers' ),
			'menu_name'                   => __( 'Writers' ),
		),
		'show_ui'       => true,
		'query_var'     => true,
		//'rewrite'       => array( 'slug' => 'the_writer' ), // свой слаг в URL
	));
}

Не забудьте заменить «my_posts_name» на название своих произвольных полей.

Оставить комментарий

avatar