問題の概要
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(