WPML
Status
Resolvido pelo autor
Relatado para
WPML Multilingual for BuddyPress and BuddyBoss 1.7.0
Resolvido em
BuddyBoss Platform 2.5.70
Plugin/tema relacionado
BuddyBoss Platform, BuddyBoss Theme
Tags de tópico
Compatibility

Visão geral do problema

Se você estiver usando o BuddyBoss, pode notar que o seletor de idiomas está sem os ícones de bandeira, exibindo apenas ícones em branco no lugar. Esse problema afeta os seletores de idiomas tanto do menu superior quanto do painel lateral.

Solução alternativa

Certifique-se de ter um backup completo do seu site antes de prosseguir.

Para corrigir o painel do BuddyBoss:


  • Abra o arquivo …/wp-content/themes/buddyboss-theme/inc/theme/functions.php.

  • Procure a linha 582.

  • Substitua:
    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;
    }

  • Por:
    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;
    }
  • No mesmo arquivo, por volta da linha 895, substitua:
    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>";
    	}
    }
  • Por:
    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>";
    		}
    	}
    }

Para corrigir o seletor de idiomas no menu de cabeçalho do BuddyBoss:

  • No mesmo arquivo, por volta da linha 1056.
  • Logo antes de:
    		if ( ! $icon ) {
    			$classes[] = 'no-icon';
  • Adicione:
    		// WPML Workround for compsupp-7139
    		if (in_array( 'wpml-ls-item', $item->classes)) {
    			$icon = 'bb-icon-globe';
    		}	

Todos os problemas conhecidos →