![]() |
WPML, двуязычный сайт на wordpress и проблемы при сортировке.
Изменил первоначальное сообщение, так как залил вчера двуязычную версию сайта на сервер, и могу теперь данную проблему показать более наглядно.
Приветствую, достаточно спешно ищу удовлетворительное решение следующей проблемы. Есть сайт на вордпрессе, собственно, вот он, в настоящее время языков 2 - англ и рус. Проблема. При применении любого правила сортировки (например, см пункт меню Properties) при втором (недефолтном) языке результат сортировки выдается на дефолтном языке....Т.е. у меня дефолтный англ, второй - рус, например, тот же пункт меню Properties у меня назван Объекты и находится по адресу - связан с англ Теперь я например хочу отсортировать объекты по цене по возрастанию, находясь в русской версии, результат получаю как т.е. по англ. Если я вручную добавляю ru - - результат сортировки корректный, но как добиться, чтобы это []ru[/] при сортировке не удалялось, не пойму... Единственное похожее видел в гугле .... - но там как видно сортировка посредством woocommerce, а у меня тут woocommerce нет... Однако думаю все равно как то должно это решаться, может быть, где то можно вручную (htaccess?) прописать редиректы для соотв-их урлов, благо их там немного. Т.е. если нет красивого и правильного решения, возможно ли каким то образом задать редиректы, например с .... редиректить на ..., но конечно только для переходов с любой []ru[/] страницы ( ...... ) |
Написал в суппорт автора шаблона, как вариант, в непереведенных местах использовать условие для вывода нужного контента или подключения оного в зависимости от текущей языковой локали.
Поскольку для многоязычности используется wpml, автор предложил использовать следующую конструкцию: Код:
{% if ICL_LANGUAGE_CODE=='ru' %} У меня - нет. Если использую код выше, то результат сортировки всегда - в обоих языках - выводится на англ, если изменяю на Код:
{% if ICL_LANGUAGE_CODE=='en' %} Автор темы стал меня игнорировать, сказал, типа, все должно работать, но у меня не срабатывает и я искренне недоумеваю, в чем проблема. Если мыслить логически, исходя из результатов сортировки, условие срабатывает, но переменная ICL_LANGUAGE_CODE всегда в первом случае возвращает false - и совершенно не понятно, почему... Использую ICL_LANGUAGE_CODE для вывода нужных виджетов - в зависимости от языка - все срабатывает...а тут нет... Предлагается всесто ICL_LANGUAGE_CODE использовать wpml_current_lang - результат абсолютно идентичен предыдущему... Есть идеи? |
Проблема решена, публикую решение, может, кому то еще пригодится.
Для начала необходимо внести изменения в соответствующий php файл, в моем случае это archive-property.php - если изменения будут вноситься в другие шаблоны, необходимо найти соотв-ий php-файл и внести данное изменение в него. Например, для header.twig это header.php, для footer.twig это footer.php ну и т.д. Я буду вносить изменения в шаблон sort.twig, который подключен к шаблону archive-property.twig, поэтому первое изменение я и вношу в файл archive-property.php, Итак, в archive-property.php в секцию echo View::render необходимо добавить след-ю строку: Код:
'wpml_current_lang' => ICL_LANGUAGE_CODE Я изменяю sotr.twig, но можно создать свой шаблон для нужного языка и подключать его. Я изменяю в sort.twig Код:
<form action="{{ wp.get_bloginfo('wpurl') }}/{{ wp.__('properties', 'aviators') }}/" method="get" class="form-sort form-horizontal"> Код:
{% if wpml_current_lang == 'en' %} |
Время: 15:39. |
Время: 15:39.
© OSzone.net 2001-