Категории детей WordPress, не работающие в URL-адресах, как они должны

Я использую этот плагин под названием «Custom Post Type Permalinks», который помогает мне получить тип сообщения, чтобы выстроить его в соответствие с пользовательской таксономией, которую я создал вызываемой, product_category , но я не могу получить правильные ссылки для правильной ссылки на product_category с /shop/ перед ними, которые также работают с дочерними категориями.

В принципе, пользовательский тип сообщения является product и имеет такую ​​структуру URL: / shop / category / {Category Parent} / {Category Child} / {Product Name} и выглядит так, как показано в functions.php при регистрации настраиваемого типа сообщения :

 register_post_type('product', array( 'description' => __('Products'), 'label' => __('products'), 'labels' => array( 'name' => _x('Product', 'Post Type General Name'), 'singular_name' => _x('Product', 'Post Type Singular Name'), 'menu_name' => __('Products'), 'parent_item_colon' => __('Parent Product'), 'all_items' => __('All Products'), 'view_item' => __('View Product'), 'add_new_item' => __('Add New Product'), 'add_new' => __('Add New'), 'edit_item' => __('Edit Product'), 'update_item' => __('Update Product'), 'search_items' => __('Search Product'), 'not_found' => __('Not Found'), 'not_found_in_trash' => __('Not Found in Trash') ), 'taxonomies' => array('product_category'), 'supports' => array('title', 'editor', 'thumbnail'), 'rewrite' => array('slug' => 'shop', 'with_front' => false), "cptp_permalink_structure" => "/category/%product_category%/%postname%/", 'hierarchical' => false, 'public' => true, // Needs to be set to true to be able to show the endpoints! 'show_ui' => true, 'show_in_menu' => true, 'show_in_nav_menus' => false, 'show_in_admin_bar' => true, 'query_var' => true, 'menu_position' => 10, 'menu_icon' => 'dashicons-cart', 'can_export' => true, 'has_archive' => true, 'exclude_from_search' => false, 'publicly_queryable' => true, 'capability_type' => 'page' ) ); 

Ключ cptp_permalink_structure позволяет мне присвоить %product_category% чтобы категории (родительские и дочерние элементы) были собраны в URL-адресе, а имя продукта – последняя часть пути. Мне нужно было дать ему слизню, поэтому я выбираю shop так что у него есть что-то, так как слизняк и магазин должны быть в любом случае. Все URL-адреса продукта работают отлично. И выглядите так: /shop/category/{Category Parent}/{Category Child}/{Product Name}/

Теперь для пользовательской таксономии я добавил в функцию, которая запускается действием init WordPress и выглядит так:

 // I do not want to use 'category' since I don't want post categories mixed with product categories. register_taxonomy('product_category', 'product', array( 'label' => __('Category'), 'rewrite' => array('slug' => 'shop/category', 'hierarchical' => true, 'with_front' => false), 'labels' => array( 'name' => __('Categories'), 'singular_name' => __('Category'), 'all_items' => __('All Categories'), 'edit_item' => __('Edit Category'), 'view_item' => __('View Category'), 'update_item' => __('Update Category'), 'add_new_item' => __('Add New Category'), 'new_item_name' => __('New Category Name'), 'parent_item' => __('Parent Category'), 'parent_item_colon' => __('Parent Category:'), 'search_items' => __('Search Categories'), 'popular_items' => __('Popular Categories'), 'separate_items_with_commas' => __('Separate Categories with commas'), 'add_or_remove_items' => __('Add or Remove Categories'), 'choose_from_most_used' => __('Choose from the most used Categories'), 'not_found' => __('No Categories found') ), 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'hierarchical' => true, 'exclude_from_search' => false, 'description' => 'Categories associated with Products.', 'query_var' => true, 'capabilities' => array( 'manage_terms' => 'manage_options', //by default only admin 'edit_terms' => 'manage_options', 'delete_terms' => 'manage_options', 'assign_terms' => 'edit_posts' // means administrator', 'editor', 'author', 'contributor' ) )); 

Я пробовал использовать shop/category для переписывания пула таксономии (как вы можете видеть выше), что было бы прекрасно, если бы только страницы с детской категорией не производили 404 страницы. Итак, пока: /shop/category/{Category Parent}/ and /shop/category/{Category Child}/ works, /shop/category/{Category Parent}/{Category Child}/ возвращает страницу ошибки 404. Итак, я не понимаю, как получить детские категории, показывающие, как в /shop/category/{Category Parent}/{Category Child}/

Примечание. Если я перейду только к category в качестве переписывающего пула, категории «Дети» правильно выстраиваются так: /category/{Category Parent}/{Category Child} , но проблема в том, что мне нужно /shop/ before /category/ here ,

Как это сделать? Пытавшись понять это в течение нескольких дней, с тоннами различных способов, попробовал добавить правило перезаписи также (при смене переписывающего пули только на category ).

 add_rewrite_rule('shop/category/?([^/]*)', 'index.php?product_category=$matches[1]', 'top'); 

Но правило перезаписи также не работает для дочерних категорий. И возвращает архив родительской категории, а не дочерний.

Поскольку я протестировал это в файле archive.php со следующим кодом:

 $tax_slug = get_query_var('product_category'); echo '<pre>', var_dump($tax_slug), '</pre>'; 

И возвращает дочернюю категорию родительской категории вместо дочерних категорий.

Любая помощь здесь ценится, я вытягиваю свои волосы … лысый!

EDIT – Возможный метод, который может работать

Таким образом, в принципе, это может быть так же просто, как создание другой BASE для этой таксономии в разделе Permalinks администратора. Но как создать базу для пользовательской таксономии? Существует уже BASE для категорий и тегов, но если это может сработать, мне понадобится BASE для product_category , и slug для таксономии product_category может быть просто category , и BASE добавит shop перед этим для всех ссылок. Но как создать базу для пользовательской таксономии?