- Статус
- Решено автором
- Заявлено для
- 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'; }