Custom WordPress Custom Post Type & Custom Taxonomy Rewrite с сохранением архивов по умолчанию

У меня есть зарегистрированная таксономия (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%', '([^&]+)' );

person Travis Smith    schedule 07.06.2012    source источник


Ответы (1)


Не уверен, что вы когда-нибудь нашли свой ответ, но я только что нашел это статья, в которой описывается, как это сделать (хотя и с некоторыми оговорками). Кроме того, не уверен, сохранит ли этот ответ третью структуру постоянных ссылок, которую вы упомянули:

http://domain.com/taxonomy/term-name => http://domain.com/type/term-name

Лично я редко нахожу необходимость в этой структуре, но часто нужна структура http://domain.com/post-type/tax/term, так что эта статья мне подходит.

person chrisjlebron    schedule 05.12.2012