WPML

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

Если Вы используете WPML 4.6.7 и пытаетесь отсоединить перевод от оригинальной записи, то при выборе Нет в выпадающем списке Это перевод в Редакторе WordPress отсоединение не сохраняется. Вместо этого WPML автоматически отменяет изменения, повторно связывая перевод с оригинальной записью, как только Вы обновите перевод.

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

Эта проблема исправлена в WPML 4.6.8. Обновление решает эту проблему на Вашем сайте, поэтому это обходное решение понадобится Вам, только если Вы пока не можете выполнить обновление.

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

  • Откройте файл …/wp-content/plugins/sitepress-multilingual-cms/classes/core-abstract-classes/class-wpml-set-language.php.
  • Найдите строку 169.
  • Замените:
    private function change_translation_of( $trid, $el_id, $el_type, $language_code, $src_language_code ) {
    	$src_language_code = empty( $src_language_code )
    		? $this->sitepress->get_source_language_by_trid( $trid ) : $src_language_code;
    	if ( $src_language_code !== $language_code ) {
    		$this->wpdb->update(
  • На:
    private function change_translation_of( $trid, $el_id, $el_type, $language_code, $src_language_code ) {
    	$src_language_code = empty( $src_language_code ) && !is_null($src_language_code)
    		? $this->sitepress->get_source_language_by_trid( $trid ) : $src_language_code;
    	if ( $src_language_code !== $language_code ) {
    		if ($src_language_code == NULL) {
    			$trid = $this->wpdb->get_var("SELECT MAX(trid) FROM " . $this->wpdb->prefix . "icl_translations") + 1;
    		}
    		$this->wpdb->update(

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

Всё ещё сталкиваетесь с этой проблемой?

Если обновление не устраняет проблему, отправьте запрос в поддержку, и мы разберемся в ней вместе с Вами.