WPML
Статус
Решено
Заявлено для
WPML Multilingual for BuddyPress and BuddyBoss 1.7.0
Решено в
BuddyPress Multilingual 1.8.0
Связанный плагин/тема
BuddyBoss Platform
Теги темы
Compatibility

Обзор проблемы

В BuddyBoss при переводе обсуждений переведённые версии могут быть неправильно привязаны к форуму и могут не отображаться в цикле форума. Эта проблема может привести к тому, что переведённые обсуждения не будут отображаться в соответствующих переведённых форумах на фронтенде.

Обходное решение

Пожалуйста, перед продолжением убедитесь, что у Вас есть полная резервная копия Вашего сайта.


  • Перейдите на страницу WPML > Настройки > Пользовательская конфигурация XML.

  • Добавьте следующий XML-код:
    <wpml-config>
      <custom-fields>
        <custom-field action="copy-once">_bbp_forum_id</custom-field>
        <custom-field action="copy-once">_bbp_last_active_time</custom-field>
        <custom-field action="copy-once">_bbp_activity_id</custom-field>
        <custom-field action="copy-once">_bbp_author_ip</custom-field>
        <custom-field action="copy-once">	_bbp_reply_count</custom-field>
        <custom-field action="copy-once">_bbp_reply_count_hidden</custom-field>
        <custom-field action="copy-once">_bbp_topic_id</custom-field>
        <custom-field action="copy-once">_bbp_voice_count</custom-field>
      </custom-fields>
    </wpml-config>

  • Откройте файл functions.php Вашей темы оформления.

  • Добавьте следующий PHP-код:
    // WPMl Workaround for compsupp-7242
    function wpml_compsupp7242_filter_bbp_get_topic_forum_id($forum_id, $topic_id) {
        if ( class_exists('Sitepress') ) {
            $forum_id = apply_filters('wpml_object_id', $forum_id, get_post_type($forum_id), TRUE);
        }
    
        return $forum_id;
    }
    
    add_filter('bbp_get_topic_forum_id', 'wpml_compsupp7242_filter_bbp_get_topic_forum_id', 10, 2);
    
    // I'm not sure if this other filter is really needed, but I'm also adding here for reference
    function wpml_compsupp7242_filter_bbp_get_forum_id($bbp_forum_id, $forum_id) {
        if ( class_exists('Sitepress') ) {
            $bbp_forum_id = apply_filters('wpml_object_id', $bbp_forum_id, get_post_type($bbp_forum_id), TRUE);
        }
    
        return $bbp_forum_id;
    }
    
    add_filter('bbp_get_forum_id', 'wpml_compsupp7242_filter_bbp_get_forum_id', 10, 2);
  • Внесите небольшое изменение в исходное обсуждение и сохраните его.
  • Обновите его перевод

Все известные проблемы →