WPML
状态
已解决
报告针对
WPML Multilingual for BuddyPress and BuddyBoss 1.7.0
解决于
BuddyPress Multilingual 1.8.0
相关插件/主题
BuddyPress

问题概述

BuddyPress 插件允许您创建新的个人资料字段,您可以使用 WPML 的 BuddyPress Multilingual 桥接插件来翻译这些字段。但是,即使这些字段在 WPML字符串翻译中显示为已翻译,这些翻译在前端也是不可见的。

临时解决方法

在继续操作之前,请务必对您的站点进行完整备份

  1. 将以下代码添加到 functions.php 文件中。
     //WPML Workaround wpml_compsupp6144
    add_filter( 'bp_get_the_profile_field_value', 'wpml_compsupp6144_translate_buddypress_profile_fields', 10, 3 ); 
     
    function wpml_compsupp6144_translate_buddypress_profile_fields( $value, $type, $id ) {
         
        if ($type == 'textbox' || $type == 'wp-textbox' || $type == 'wp-biography') {
            //remove html tags from value and limit it's size, so we can use it as string name
            $filtered_value = substr(strip_tags($value), 0, 60);
            //register string
            do_action( 'wpml_register_single_string', 'BuddyPress Profile Fields', $type.' - '.$filtered_value , $value );
            //translate string
            $value = apply_filters('wpml_translate_single_string', $value, 'BuddyPress Profile Fields', $type.' - '.$filtered_value  );
        }   
        
        return $value;
    } 
  2. 访问前端的个人资料页面。这将注册字段以供翻译。
  3. 前往 WPML字符串翻译,并翻译 BuddyPress Profile Fields 域下的字段值。
  4. 返回前端的个人资料页面。现在字段应该已翻译。

所有已知问题 →