Маршрутизация URL на страницу архива с пользовательской таксономией
У меня есть пользовательский тип сообщения product
а затем пользовательская таксономия product-category
, У меня есть обработка URL для product
на работу и страницу архива archive-product.php
, Так что это охватывает страницу архива /products
и единственная страница /products/my-product-category/my-product
, Тем не менее, я хотел бы использовать категории для маршрутизации архива тоже, например /products/my-product-category
Однако я не могу заставить переписать работать на него.
Вот мой код:
function func_rewrites_init()
{
add_rewrite_rule(
'products/(\d+)/?$',
'index.php?pagename=products&unit=$matches[1]',
'top'
);
}
add_action('init', 'func_rewrites_init');
function func_query_vars($query_vars)
{
$query_vars[] = 'unit';
return $query_vars;
}
add_filter('query_vars', 'func_query_vars');
function rewrite_product_permalinks($post_link, $post)
{
if (is_object($post) && $post->post_type == 'product') {
$terms = wp_get_object_terms($post->ID, 'product-category');
if (count($terms)) {
$term = get_ancestors($terms[0]->term_id, 'product-category', 'taxonomy');
if (count($term)) {
$term = get_term(end($term));
return str_replace('%product-category%', $term->slug, $post_link);
}
}
}
return $post_link;
}
add_filter('post_type_link', 'rewrite_product_permalinks', 1, 2);
Итак rewrite_product_permalinks
работает удовольствие, это просто маршрутизация для страницы архива с product-category
это не.