WPML
Статус
Решено автором
Связанный плагин/тема
BeTheme
Теги темы
Compatibility

Обзор проблемы

Если Вы используете тему оформления BeTheme и её глобальные разделы, Вы можете столкнуться с тем, что переведенные версии этих разделов не отображаются на дополнительных языках, несмотря на наличие переводов.

Обходное решение

Пожалуйста, перед продолжением убедитесь, что Вы сделали полную резервную копию Вашего сайта.


  • Откройте файл …/wp-content/themes/betheme/functions/builder/class-mfn-builder-front.php.

  • Замените этот код:
    public function show_sections($mfn_items, $vbtoolsoff = false){
    
    	if( !is_array($mfn_items) ) return;
    
    	foreach ($mfn_items as $s => $section) {
    
    		$section_class = [];

  • На:
    public function show_sections($mfn_items, $vbtoolsoff = false){
    
    	if( !is_array($mfn_items) ) return;
    
    	foreach ($mfn_items as $s => $section) {
    
    		// WPML workaround for compsupp-7262
    		if( class_exists('Sitepress') && ! empty($section['mfn_global_section_id'] ) ) {
    			$section['mfn_global_section_id'] = apply_filters( 'wpml_object_id', $section['mfn_global_section_id'], get_post_type($section['mfn_global_section_id']) , TRUE  );
    		}
    
    		$section_class = [];

  • Затем откройте файл …/wp-content/themes/betheme/functions/post-types/class-mfn-post-type-template.php.

  • Найдите строку 21.

  • Замените:
    public function __construct(){
    
        if( !apply_filters('bebuilder_access', false) ){
            return false;
        }
    
        if( !current_user_can('editor') && !current_user_can('administrator') ){
            return false;
        }
    
        parent::__construct();
    
        // fires after WordPress has finished loading but before any headers are sent
        add_action('init', array($this, 'register'));

  • На:
    public function __construct(){
    
    	// WPML Workaround for compsupp-7262 (Part 2)
    	if ( ! class_exists('Sitepress') ) {
    
    		if( !apply_filters('bebuilder_access', false) ){
    			return false;
    		}
    
    		if( !current_user_can('editor') && !current_user_can('administrator') ){
    			return false;
    		}
    	}
    
    	parent::__construct();
    
    	// fires after WordPress has finished loading but before any headers are sent
    	add_action('init', array($this, 'register'));

Все известные проблемы →