• DONATE to NULLED!
    Вы можете помочь Форуму и команде, поддержать финансово.
    starwanderer - модератор этого раздела будет Вам благодарен!

Помощь WPML: мультиязычный сайт на WP и сортировка

typus

Мой дом здесь!
Регистрация
25 Июл 2007
Сообщения
895
Реакции
241
Изменил первоначальное сообщение, так как залил вчера двуязычную версию сайта на сервер, и могу теперь данную проблему показать более наглядно.

Приветствую, достаточно спешно ищу удовлетворительное решение следующей проблемы.
Есть сайт на вордпрессе, собственно,Для просмотра ссылки Войди или Зарегистрируйся, в настоящее время языков 2 - англ и рус.
Проблема.
При применении любого правила сортировки (например, см пункт меню Properties) при втором (недефолтном) языке результат сортировки выдается на дефолтном языке....Т.е. у меня дефолтный англ, второй - рус, например, тот же пункт меню Properties у меня назван Объекты и находится по адресу Для просмотра ссылки Войди или Зарегистрируйся - связан с англ Для просмотра ссылки Войди или Зарегистрируйся
Теперь я например хочу отсортировать объекты по цене по возрастанию, находясь в русской версии, результат получаю как Для просмотра ссылки Войди или Зарегистрируйся т.е. по англ.
Если я вручную добавляю ru - Для просмотра ссылки Войди или Зарегистрируйся - результат сортировки корректный, но как добиться, чтобы это []ru[/] при сортировке не удалялось, не пойму...

Единственное похожее видел в гугле Для просмотра ссылки Войди или Зарегистрируйся - но там как видно сортировка посредством woocommerce, а у меня тут woocommerce нет... Однако думаю все равно как то должно это решаться, может быть, где то можно вручную (htaccess?) прописать редиректы для соотв-их урлов, благо их там немного.

Т.е. если нет красивого и правильного решения, возможно ли каким то образом задать редиректы, например с Для просмотра ссылки Войди или Зарегистрируйся редиректить на Для просмотра ссылки Войди или Зарегистрируйся, но конечно только для переходов с любой []ru[/] страницы ( Для просмотра ссылки Войди или Зарегистрируйся.... )

добавлено:

Написал в суппорт автора шаблона, как вариант, в непереведенных местах использовать условие для вывода нужного контента или подключения оного в зависимости от текущей языковой локали.
Поскольку для многоязычности используется wpml, автор предложил использовать следующую конструкцию:
Код:
    {% if ICL_LANGUAGE_CODE=='ru' %}
        {выводим для ru}
    {% else %}
        {выводим для en}
    {% endif %}
Что самое смешное, в гугле довольно много комментов по данной проблеме, и в основном, все у людей работает.
У меня - нет.
Если использую код выше, то результат сортировки всегда - в обоих языках - выводится на англ, если изменяю на
Код:
    {% if ICL_LANGUAGE_CODE=='en' %}
        {выводим для en}
    {% else %}
        {выводим для ru}
    {% endif %}
то результат сортировки в обоих языках всегда по русски.
Автор темы стал меня игнорировать, сказал, типа, все должно работать, но у меня не срабатывает и я искренне недоумеваю, в чем проблема.
Если мыслить логически, исходя из результатов сортировки, условие срабатывает, но переменная 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' %}
        <form action="{{ wp.get_bloginfo('wpurl') }}/{{ wp.__('properties', 'aviators') }}/" method="get" class="form-sort form-horizontal">
    {% else %}
        <form action="{{ wp.get_bloginfo('wpurl') }}/{{ wp.__('ru/properties', 'aviators') }}/" method="get" class="form-sort form-horizontal">
    {% endif %}
И все работает, условие отрабатывает корректно, и сортировка также корректно работает.
 
Последнее редактирование:
Назад
Сверху