Я бы при регистрации типа записи с помощью функции
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