WPML
Status
Resolvido
Relatado para
WPML Multilingual for BuddyPress and BuddyBoss 1.7.0
Resolvido em
BuddyPress Multilingual 1.8.0
Plugin/tema relacionado
BuddyBoss Platform
Tags de tópico
Compatibility

Visão geral do problema

No BuddyBoss, quando as discussões são traduzidas, as versões traduzidas podem não ter a atribuição de fórum correta e podem não ser exibidas dentro do loop do fórum. Esse problema pode fazer com que as discussões traduzidas não apareçam nos fóruns traduzidos correspondentes no frontend.

Solução alternativa

Por favor, certifique-se de ter um backup completo do seu site antes de prosseguir.


  • Vá para a página WPML > Configurações > Configuração XML personalizada.

  • Adicione o seguinte 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>

  • Abra o arquivo functions.php do seu tema.

  • Adicione o seguinte código 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);
  • Faça uma pequena modificação na discussão original e salve-a.
  • Atualize sua tradução

Todos os problemas conhecidos →