add_rewrite_tag работает для некоторых параметров, но не для других

Я создал это новое правило перезаписи, но оно соответствует некоторым шаблонам, но не соответствует другим, когда оба одинаковы. Например:

для category/resources/newsletters/2017 загружает category-newsletters.php но для category/resources/newsletters/2014 я вижу страницу 404.

(Я генерирую структуру permalink каждый раз, когда я изменяю правило перезаписи)

 remove_filter('template_redirect', 'redirect_canonical'); function cd_rewrite_rule() { add_rewrite_rule('^category/resources/newsletters/([0-9]+)/?','index.php?category_name=newsletters&year=$matches[1]','top'); add_rewrite_tag('%year%', '([0-9]+)'); } add_action('init', 'my123_rewrite_rule'); 

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

category/resources/newsletters/2017 => year=2017&category_name=newsletters

category/resources/newsletters/2014 => category_name=newsletters&name=2014

Solutions Collecting From Web of "add_rewrite_tag работает для некоторых параметров, но не для других"

Похоже, у вас конфликтующие термины – например, у вас есть таксономия, называемая именем, которая содержит значения года, а также год, который содержит значения года. Самый безопасный способ – консолидировать, чтобы у вас не было условий с дублирующимися слизнями. В противном случае WP будет по-прежнему запутываться в отношении того, к которому вы обращаетесь.