[Решено] Не отображается перевод в плагине календаря
Эта тема решена. Вот описание проблемы и ее решения.
Problem: Вы столкнулись с проблемой, когда переведенные события не отображаются в календаре плагина, вместо этого показываются оригинальные события. Solution: Для решения этой проблемы необходимо использовать WPML фильтр
wpml_object_id
в темплейтах, которые отвечают за вывод календаря. Этот фильтр поможет конвертировать ID событий, чтобы правильно отображать переведенные версии. Вы можете найти больше информации о фильтре здесь, а полный список доступных фильтров WPML доступен здесь. Также рекомендуем ознакомиться с документацией по достижению совместимости вашей темы с WPML здесь. Если у вас есть разработчик, который работал над вашей темой, рекомендуем обратиться к нему с этой информацией. В противном случае, свяжитесь с автором темы.
Если предложенное решение не актуально или не подходит для вашего случая, рекомендуем открыть новый тикет поддержки. Также настоятельно рекомендуем проверить известные проблемы, убедиться в версии исправления и подтвердить, что у вас установлены последние версии тем и плагинов. Для дополнительной помощи, пожалуйста, обратитесь в форум поддержки WPML.
Это форум технической поддержки WPML – плагина для многоязычной WordPress.
Доступно для чтения всем, но только клиенты, купившие WPML, могут оставлять сообщения. Сотрудники WPML отвечают на сообщения форума 6 дней в неделю, 22 часов в сутки.
В первую очередь, Вам обновить плагин WPML до последней версии 4.6.13 и его дополнения, чтобы воспользоваться последними исправлениями и улучшениями. Это может не обязательно решить проблему, однако, чтобы решить ее лучше всего, работать с последними доступными версиями плагинов.
Вы можете проверить последние выпущенные версии в разделе «Моя учетная запись -> Загрузки» на этом сайте. Инструкции по обновлению можно найти здесь: https://wpml.org/ru/faq/как-установить-wpml/
Если Вы не видите доступные обновления, перейдите в раздел Плагины → Добавить новый и нажмите на вкладку Реклама, затем на кнопку «Проверить наличие обновлений».
Также, Вам необходимо обновить и другие связанные плагины, такие как WooCommerce и Elementor, и другие которые отвечают за календарь.
Пожалуйста, не забудьте сделать резервную копию Вашей базы данных, прежде чем продолжить.
Если проблема не исчезнет после обновлений, мне нужно больше информации о том, как Вы создали события, какой плагин их выводит, какие делали переводы. Если знаете, то также информация, как отобразили события на сайте.
Я могу проверить проблему на Вашем сайте, но если не найду быстрого решения, в таком случае без дополнительного программирования ее не решить. Для этого, Вам лучше будет связаться с автором ткущей темы и и пригласить его участвовать в нашей программе Go Global для того, чтобы сделать его тему полностью совместимой с WPML: https://wpml.org/documentation/support/go-global-program/
Мне нужно запросить временный доступ (WP-администратора и FTP) на Ваш сайт - предпочтительно к тестовому сайту, где проблема была воспроизведена, если это возможно - для того, чтобы лучше помочь. Вы найдете необходимые поля ниже поля для комментариев, когда Вы войдете, чтобы оставить свой следующий ответ. Информацию, которую Вы ведете является частной, что означает только Вы и я могу видеть и иметь доступ к ней.
Правильно ли я понимаю, что Вы выводите календарь следующим образом?
[container extra="row"]
[event_calendar category_id=""]
[/container]
Если да, попробуйте указать, к примеру id категории, для разных языков. Может так сработает. К примеру, [event_calendar category_id="2"], для другого языка [event_calendar category_id="3"], в соответствии id категории конечно.
Также вижу, что доступно обновление темы и других плагинов, рекомендую все обновить.
Спасибо за информацию. Я еще раз просмотрел проблему с которой Вы столкнулись, а также темплейты Вашей текущей темы. Без дополнительного пользовательского программирования, переведенные события не будут отображаться в календаре.
В темплейтах текущей темы, которые используются для вывода календаря, необходимо использовать также WPML фильтр wpml_object_id для конвертации ID событий.
Нашел код shorcode event_calendar по адресу
wp-content/plugins/nativechurch-core/shortcodes/shortcodes.php
function nativehcurch_event_calendar($atts)
Можете помочь с кодом для перевода данного виджета?
Я просмотрел файл и функцию, чтобы точно сказать, функцию нужно отлаживать. Насколько я вижу, где получаете $term->term_id необходимо пропустить через фильтр wpml_object_id.
Базовые примеры из документации выше:
// will return the post ID in the current language for post ID 1
echo apply_filters( 'wpml_object_id', 1, 'post' );
// will return the category ID in the current language for categoy ID 4. If the translation is missing it will return the original (here: category ID 4)
echo apply_filters( 'wpml_object_id', 4, 'category', TRUE );
// will return the German attachment ID for attachment ID 25. If the translation is missing it will return NULL
echo apply_filters( 'wpml_object_id', 25, 'attachment', FALSE, 'de' );
Можете помочь в написание функции, так как пропусти через этот фильтр не помогло
Страница отображения календаря скрытая ссылка
Может я не ту функцию нашел
Возможно, потребуется внести изменения в нескольких местах или в другом месте, чтобы добиться нужного результата. Для точного определения почему не работает необходимо пошагово отладить код текущей темы, что выходит за рамки предоставляемой здесь технической поддержки.
У нас есть страница, где перечислены возможные подрядчики, которые могут помочь в пользовательском программировании: https://wpml.org/contractors/
Если, Ваша текущая тема является коммерческой, попробуйте также обратится к автору темы, предложите ему заполнить форму по ссылке ниже, чтобы сделать его тему полностью совместимой с WPML: https://wpml.org/documentation/support/go-global-program/