Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Wordpress. Постоянные ссылки с помощью rewrite_rule. Голова уже сломана. Как? (http://forum.oszone.net/showthread.php?t=305665)

Damaks 20-09-2015 00:14 2555320

Wordpress. Постоянные ссылки с помощью rewrite_rule. Голова уже сломана. Как?
 
Вечер добрый.

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

Стандартные настройки постоянных ссылок в 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) вставка города имеет иерархию, то есть там через / последовательно все значения от страны, области, до города. Желательно только выбранный вариант пользователем (он может выбрать и область).

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


Время: 05:53.

Время: 05:53.
© OSzone.net 2001-