WPML
상태
개발자가 해결함
보고된 제품
WPML Multilingual for BuddyPress and BuddyBoss 1.7.0
해결된 버전
BuddyBoss Platform 2.5.70
관련 플러그인/테마
BuddyBoss Platform, BuddyBoss Theme
주제 태그
Compatibility

문제 개요

BuddyBoss를 사용하는 경우, 언어 전환기에 국기 아이콘이 누락되어 대신 빈 아이콘만 표시되는 것을 확인할 수 있습니다. 이 문제는 상단 메뉴와 측면 패널의 언어 전환기 모두에서 발생합니다.

임시 해결 방법

진행하기 전에 사이트의 전체 백업을 완료하세요.

BuddyBoss 패널을 수정하려면:


  • …/wp-content/themes/buddyboss-theme/inc/theme/functions.php 파일을 여세요.

  • 582번째 줄을 찾으세요.

  • 다음 코드를:
    function bb_buddypanel_menu_atts( $atts, $item, $args ) {
    	if (
    		isset( $args->theme_location ) &&
    		(
    			'buddypanel-loggedin' === $args->theme_location ||
    			'buddypanel-loggedout' === $args->theme_location
    		)
    	) {
    		$atts['class'] = 'bb-menu-item';
    
    		$header = (int) buddyboss_theme_get_option( 'buddyboss_header' );
    		if ( 3 === $header ) {
    			$buddypanel_side = buddyboss_theme_get_option( 'buddypanel_position_h3' );
    		} else {
    			$buddypanel_side = buddyboss_theme_get_option( 'buddypanel_position' );
    		}
    
    		if ( $buddypanel_side && $buddypanel_side == 'right' ) {
    			$atts['data-balloon-pos'] = 'left';
    		} else {
    			$atts['data-balloon-pos'] = 'right';
    		}
    		$atts['data-balloon'] = $item->title;
    	}
    
    	return $atts;
    }

  • 다음으로 교체하세요:
    function bb_buddypanel_menu_atts( $atts, $item, $args ) {
    	if (
    		isset( $args->theme_location ) &&
    		(
    			'buddypanel-loggedin' === $args->theme_location ||
    			'buddypanel-loggedout' === $args->theme_location
    		)
    	) {
    		$atts['class'] = 'bb-menu-item';
    
    		$header = (int) buddyboss_theme_get_option( 'buddyboss_header' );
    		if ( 3 === $header ) {
    			$buddypanel_side = buddyboss_theme_get_option( 'buddypanel_position_h3' );
    		} else {
    			$buddypanel_side = buddyboss_theme_get_option( 'buddypanel_position' );
    		}
    
    		if ( $buddypanel_side && $buddypanel_side == 'right' ) {
    			$atts['data-balloon-pos'] = 'left';
    		} else {
    			$atts['data-balloon-pos'] = 'right';
    		}
    		$atts['data-balloon'] = $item->title;
    		// WPMl workaround for compsupp-7115
    		if (class_exists('Sitepress')) {
    			$atts['data-balloon'] = wp_strip_all_tags($item->title);
    		}
    	}
    
    	return $atts;
    }
  • 동일한 파일의 895번째 줄 부근에서 다음 코드를:
    if ( ! $icon ) {
    	if ( in_array( 'bp-menu', $item->classes ) ) {
    		if ( 'bp-profile-nav' === $item->classes[1] ) {
    			$icon = 'bb-icon-user';
    		} elseif ( 'bp-settings-nav' === $item->classes[1] ) {
    			$icon = 'bb-icon-cog';
    		} elseif ( 'bp-activity-nav' === $item->classes[1] ) {
    			$icon = 'bb-icon-activity';
    		} elseif ( 'bp-notifications-nav' === $item->classes[1] ) {
    			$icon = 'bb-icon-bell';
    		} elseif ( 'bp-messages-nav' === $item->classes[1] ) {
    			$icon = 'bb-icon-inbox';
    		} elseif ( 'bp-friends-nav' === $item->classes[1] || 'bp-friends-sub-nav' === $item->classes[1] ) {
    			$icon = 'bb-icon-user-friends';
    		} elseif ( 'bp-groups-nav' === $item->classes[1] || 'bp-groups-sub-nav' === $item->classes[1] ) {
    			$icon = 'bb-icon-users';
    		} elseif ( 'bp-forums-nav' === $item->classes[1] ) {
    			$icon = 'bb-icon-comments-square';
    		} elseif ( 'bp-videos-nav' === $item->classes[1] ) {
    			$icon = 'bb-icon-video';
    		} elseif ( 'bp-documents-nav' === $item->classes[1] ) {
    			$icon = 'bb-icon-folder-alt';
    		} elseif ( 'bp-photos-nav' === $item->classes[1] ) {
    			$icon = 'bb-icon-image';
    		} elseif ( 'bp-invites-nav' === $item->classes[1] ) {
    			$icon = 'bb-icon-envelope';
    		} elseif ( 'bp-logout-nav' === $item->classes[1] ) {
    			$icon = 'bb-icon-sign-out';
    		} elseif ( 'bp-login-nav' === $item->classes[1] ) {
    			$icon = 'bb-icon-sign-in';
    		} elseif ( 'bp-register-nav' === $item->classes[1] ) {
    			$icon = 'bb-icon-clipboard';
    		} elseif ( 'bp-courses-nav' === $item->classes[1] ) {
    			$icon = 'bb-icon-graduation-cap';
    		}
    	}
    	if ( ! $icon ) {
    		$item->title = "<i class='bb-icon-file'></i><span class='link-text'>{$item->title}</span>";
    	} else {
    		$item->title = "<i class='_mi _before buddyboss bb-icon-l " . $icon . "'></i><span class='link-text'>{$item->title}</span>";
    	}
    }
  • 다음으로 교체하세요:
    if ( ! $icon ) {
    	if ( in_array( 'bp-menu', $item->classes ) ) {
    		if ( 'bp-profile-nav' === $item->classes[1] ) {
    			$icon = 'bb-icon-user';
    		} elseif ( 'bp-settings-nav' === $item->classes[1] ) {
    			$icon = 'bb-icon-cog';
    		} elseif ( 'bp-activity-nav' === $item->classes[1] ) {
    			$icon = 'bb-icon-activity';
    		} elseif ( 'bp-notifications-nav' === $item->classes[1] ) {
    			$icon = 'bb-icon-bell';
    		} elseif ( 'bp-messages-nav' === $item->classes[1] ) {
    			$icon = 'bb-icon-inbox';
    		} elseif ( 'bp-friends-nav' === $item->classes[1] || 'bp-friends-sub-nav' === $item->classes[1] ) {
    			$icon = 'bb-icon-user-friends';
    		} elseif ( 'bp-groups-nav' === $item->classes[1] || 'bp-groups-sub-nav' === $item->classes[1] ) {
    			$icon = 'bb-icon-users';
    		} elseif ( 'bp-forums-nav' === $item->classes[1] ) {
    			$icon = 'bb-icon-comments-square';
    		} elseif ( 'bp-videos-nav' === $item->classes[1] ) {
    			$icon = 'bb-icon-video';
    		} elseif ( 'bp-documents-nav' === $item->classes[1] ) {
    			$icon = 'bb-icon-folder-alt';
    		} elseif ( 'bp-photos-nav' === $item->classes[1] ) {
    			$icon = 'bb-icon-image';
    		} elseif ( 'bp-invites-nav' === $item->classes[1] ) {
    			$icon = 'bb-icon-envelope';
    		} elseif ( 'bp-logout-nav' === $item->classes[1] ) {
    			$icon = 'bb-icon-sign-out';
    		} elseif ( 'bp-login-nav' === $item->classes[1] ) {
    			$icon = 'bb-icon-sign-in';
    		} elseif ( 'bp-register-nav' === $item->classes[1] ) {
    			$icon = 'bb-icon-clipboard';
    		} elseif ( 'bp-courses-nav' === $item->classes[1] ) {
    			$icon = 'bb-icon-graduation-cap';
    		}
    	}
    
    	// WPML Workround for compsupp-7115
    	elseif (in_array( 'wpml-ls-item', $item->classes)) {
    		$icon = 'bb-icon-globe';
    	}
    
    	if ( ! $icon ) {
    		$item->title = "<i class='bb-icon-file'></i><span class='link-text'>{$item->title}</span>";
    	} else {
    		if (! preg_match('/<img/', $item->title) ) {
    			$item->title = "<i class='_mi _before buddyboss bb-icon-l " . $icon . "'></i><span class='link-text'>{$item->title}</span>";
    		}
    	}
    }

BuddyBoss 헤더 메뉴의 언어 전환기를 수정하려면:

  • 동일한 파일의 1056번째 줄 부근에서,
  • 다음 코드 바로 앞에:
    		if ( ! $icon ) {
    			$classes[] = 'no-icon';
  • 다음을 추가하세요:
    		// WPML Workround for compsupp-7139
    		if (in_array( 'wpml-ls-item', $item->classes)) {
    			$icon = 'bb-icon-globe';
    		}	

알려진 모든 문제 →