Войти

Показать полную графическую версию : Wordpress. Постоянные ссылки с помощью rewrite_rule. Голова уже сломана. Как?


Damaks
20-09-2015, 00:14
Вечер добрый.

Уже давно голову ломаю над этим вопросом, пока безрезультатно. Пришла пора наконец его решить.

Стандартные настройки постоянных ссылок в wordpress не позволяют менять адреса для пользовательских типов записей и таксономий. Используемый плагин "Types" также не имеет такого функционала. Проблеск надежды появился с плагином "Custom Post Type Permalinks", но его недостаточно. Разобраться в его коде не смог, там просто адище.

Обрисую ситуацию.

Есть один тип пользовательских записей и несколько пользовательских таксономий.


Ссылки на запись пользовательского типа имеют вид:
"http://site.ru/%тип поста%/%slug записи%"
Ссылки на пользовательскую таксономию:
"http://site.ru/%таксономия%/%slug таксономии%"
Одна из этих таксономий является иерархическим списком городов по типу:
"Россия" - "Москва и московская область" - "Мытищи"


Значение данной таксономии выбирается пользователем и хранится в сессии. В зависимости от этого значения выводятся записи в других пользовательских таксономиях и поиске с помощью модифицированного цикла. Т.е. по одной и той же ссылке "http://site.ru/%таксономия%/%slug таксономии%" выводятся разные записи при разных значениях сессии.

Необходимо изменить ссылки на список постов пользовательских категорий, добавив в них выбранный пользователем город (из сессии, оно аналогично одной из пользовательских таксономий). Например, пользователь выбрал своим городом Москву. Тогда:
из ссылки вида
"http://site.ru/%таксономия%/%slug таксономии%"
необходимо сделать ссылку вида:
"http://site.ru/%город%/%таксономия%/%slug таксономии%"

(или "http://site.ru/%таксономия%/%slug таксономии%/%город%", ещё не определился).

То есть для всех других пользовательских таксономий добавить в ссылку выбранный город. То же самое и с ссылками на записи пользовательского типа. Как?

Пробовал разобраться с "add_rewrite_rule", но успехов не было. Да и толковых мануалов не нашёл. А если нашёл, то либо регулярки неправильные составляю, либо само правило не работает.

Как писал выше, есть хороший плагин "Custom Post Type Permalinks". Он позволяет в качестве рулярки в ссылку вставить значение пользовательской таксономии (в моём случае город). Но не подходит по двум причинам:
1) город вставляется только в ссылки на запись пользовательского типа. А мне необходимо ещё и на страницы с постами пользовательских таксономий.
2) вставка города имеет иерархию, то есть там через / последовательно все значения от страны, области, до города. Желательно только выбранный вариант пользователем (он может выбрать и область).

Как всё это реализовать, кто подскажет? Моей признательности не будет границ, буду называть советника "Богом вордпресса".




© OSzone.net 2001-2012