WPML
ステータス
未解決
関連するプラグイン/テーマ
Advanced Custom Fields
トピックタグ
Compatibility

問題の概要

ACF – Advanced Custom FieldsACFMLプラグインと一緒に使用している場合、Cloneフィールドが一度だけコピーに設定されていると、フロントエンドで元の言語のフィールド値を取得できません。この問題は、Cloneフィールドを含むフィールドグループが言語間で異なるフィールドに設定されている場合、またはエキスパートモードでフィールドが手動で一度だけコピーに設定されている場合に発生します。

回避策

続行する前に、必ずお使いのサイトの完全なサイトバックアップを作成してください。


  • …wp-content/plugins/acfml/classes/class-wpml-acf-custom-fields-sync.phpファイルを開きます。

  • 42行目を探します。

  • 変更前:
    public function clean_empty_values_for_copy_once_field( $value, $post_id, $field ) {
    	if ( '' === $value
    		&& ! $this->value_has_been_emptied( $field )
    		&& isset( $field['wpml_cf_preferences'] )
    		&& WPML_COPY_ONCE_CUSTOM_FIELD === $field['wpml_cf_preferences']
    		&& ! $this->isFieldType( $field, 'group' )
    	) {
    		$value = null;
    	}
    	return $value;
    }

  • 変更後:
    // WPML Workaround for compsupp-7767
    public function clean_empty_values_for_copy_once_field( $value, $post_id, $field ) {
    	if ( '' === $value
    		&& ! $this->value_has_been_emptied( $field )
    		&& isset( $field['wpml_cf_preferences'] )
    		&& WPML_COPY_ONCE_CUSTOM_FIELD === $field['wpml_cf_preferences']
    		&& ! $this->isFieldType( $field, 'group' )
    		&& ! $this->isFieldType( $field, 'clone' )
    	) {
    		$value = null;
    	}
    	return $value;
    }

すべての既知の問題 →