@ligisayan

Как исправить битые ссылки элементов фильтра при активации плагина транслитерации ссылок Cyr to Lat?

Всем привет! Есть сайт на wordpress в теме которого предусмотрен фильтр для поиска по определенным testimonials, к примеру портфолио каких-либо объектов.
Если добавить его на определенную страницу, то сама страница будет выводится в таком виде:
http://сайт/?page_id=1234
а элемент портфолио вот так -
http://сайт/?portfolio_page=mnogostranichnyj-lending

Если активировать плагин транслитерации ссылок Cyr to Lat, то на сами страницы переход есть, а на элементах фильтра получаются битые ссылки.

Дополнение:
вся фишка в том, что, если задавать в настройках ссылки вида http://сайт/?p=123, то страница содержащая фильтр выводится с классом <body class="page">
и каждая ссылка элемента в таком виде http://сайт/?portfolio_page=mnogostranichnyj-lending
а, если задавать произвольные ссылки вида http://сайт/%postname%/, то уже выводится содержащая страница с классом <body class="archive"> и ссылкой http://сайт/portfolio с no items, а каждый элемент в таком виде: http://сайт/portfolio_page/mnogostranichnyj-lending
почему вдруг так?
  • Вопрос задан
  • 269 просмотров
Решения вопроса 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
На элементах какого фильтра? В WP в ядре никаких фильтров нету, это у вас видимо плагин или функционал темы. Соответственно, открывайте код фильтра и смотрите, как генерируется ссылка. Cyr 2 Lat хукается в 2 фильтра:
- sanitize_title
- sanitize_file_name
Соответственно, он модифицирует слаги постов/таксономий (которые генерятся из тайтлов) и имена медиа-файлов в базе данных. Нативные функции ядра (типа get_permalink) будут возвращать корректные ссылки. В вашем же фильтре скорее всего используется что-то свое.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы