У меня есть зарегистрированная таксономия (wps_type) и 2 настраиваемых типа сообщений (wps_business, wps_location) в этом порядке. Зарегистрированная таксономия имеет rewrite arg, установленное на slug => type, а для типов сообщений уже установлено slug => business & slug => location. Мне нужно настраиваемое правило перезаписи умных постоянных ссылок, в котором доступно все следующее.
Значения по умолчанию работают (и еще нужно работать):
http://domain.com/post-type/post-name => http://domain.com/business/post-name
http://domain.com/post-type/post-name => http://domain.com/location/post-name
http://domain.com/taxonomy/term-name => http://domain.com/type/term-name
Но мне нужно:
http://domain.com/post-type/taxonomy => http://domain.com/location-post-name/type-term-name
Поэтому я считаю, что использование фильтра post_type_link может не работать, но я могу ошибаться. Вот код, который я пробовал:
add_rewrite_rule( '^directory/([^/]*)/([^/]*)/?', 'index.php?wps_location=$matches[1]&wps_business=$matches[2]', 'top' );
add_rewrite_tag( '%wps_location%', '([^/]+)' );
add_rewrite_tag( '%wps_business_types%', '([^&]+)' );