WPML
Статус
Решено
Решено в
4.5.0
Связанный плагин/тема
Houzez

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

Тема оформления Houzez использует собственную функцию для вызова параметров темы. Если язык по умолчанию Вашего сайта не английский, эта функция будет конфликтовать с WPML. В результате переводы не будут отображаться во фронтенде, а в админ-панели они будут возвращены к языку по умолчанию.

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

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


  1. Откройте /wpml-string-translation/inc/admin-texts/wpml-admin-texts.class.php.

  2. Найдите строку 198.

  3. Замените:
    	function icl_st_set_admin_options_filters() {
    		$option_names = $this->getOptionNames();
    
    		foreach ( $option_names as $option_key => $option ) {
    			if ( $this->is_blacklisted( $option_key ) ) {
    				unset( $option_names[ $option_key ] );
    				update_option( '_icl_admin_option_names', $option_names );
    			} elseif ( $option_key != 'theme' && $option_key != 'plugin' ) { // theme and plugin are an obsolete format before 3.2
    				add_filter( 'option_' . $option_key, array( $this, 'icl_st_translate_admin_string' ) );
    				add_action( 'update_option_' . $option_key, array( $this, 'on_update_original_value' ), 10, 3 );
    			}
    		}
    	}


  4. На:
    	function icl_st_set_admin_options_filters() {
    		$option_names = $this->getOptionNames();
    
    		$isAdmin = is_admin() && ! wpml_is_ajax();
    
    		foreach ( $option_names as $option_key => $option ) {
    			if ( $this->is_blacklisted( $option_key ) ) {
    				unset( $option_names[ $option_key ] );
    				update_option( '_icl_admin_option_names', $option_names );
    			} elseif ( $option_key != 'theme' && $option_key != 'plugin' ) { // theme and plugin are an obsolete format before 3.2
    				/**
    				 * We don't want to translate admin strings in admin panel because it causes a lot of confusion
    				 * when a value is displayed inside the form input.
    				 **/
    				if ( ! $isAdmin ) {
    					add_filter( 'option_' . $option_key, array( $this, 'icl_st_translate_admin_string' ) );
    				}
    				add_action( 'update_option_' . $option_key, array( $this, 'on_update_original_value' ), 10, 3 );
    			}
    		}
    	}

Дальнейшие действия

Эта проблема будет решена с релизом WPML 4.5 (в конце сентября 2021 года).

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