Маршрутизация 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 это не.

0 ответов

Другие вопросы по тегам