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) вставка города имеет иерархию, то есть там через / последовательно все значения от страны, области, до города. Желательно только выбранный вариант пользователем (он может выбрать и область).
Как всё это реализовать, кто подскажет? Моей признательности не будет границ, буду называть советника "Богом вордпресса".
Уже давно голову ломаю над этим вопросом, пока безрезультатно. Пришла пора наконец его решить.
Стандартные настройки постоянных ссылок в 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) вставка города имеет иерархию, то есть там через / последовательно все значения от страны, области, до города. Желательно только выбранный вариант пользователем (он может выбрать и область).
Как всё это реализовать, кто подскажет? Моей признательности не будет границ, буду называть советника "Богом вордпресса".