WPML
Status
Gelöst

Übersicht über das Problem

Für einige ACF-Feldtypen ist es nicht möglich, Inhalte korrekt zu duplizieren.

Problemumgehung

Wenn Sie eines der Felder verwenden, die im Abschnitt „Vollständige Beschreibung“ dieses Beitrags aufgeführt sind, sollten Sie dieses Snippet zur Datei functions.php Ihres Themes hinzufügen, damit die Duplizierung ordnungsgemäß funktioniert.

function wpml_fix_acf_duplication( $value_to_filter, $target_language, $meta_data ) {
  // Field names should be placed into following array.
  $fields = array(
     'test_taxonomy' => 'some_taxonomy_name',
     'test_image' => 'attachment',
     'test_file' => 'attachment',
     'test_gallery' => 'attachment',
     'test_post_object' => 'post',
     'test_page_link' => 'page'
  );

  if ( array_key_exists( $meta_data['key'], $fields ) ) {
		$value = maybe_unserialize( $value_to_filter );

		if ( is_array( $value ) ) {
			// If custom field value contain array of IDs to translate, usually used for gallery and taxonomy field types.
			$translated_ids = array();

			foreach ( $value as $v ) {
				$translated_ids[] = apply_filters( 'wpml_object_id', $v, $fields[ $meta_data['key'] ], true, $target_language );
			}

			return maybe_serialize( $translated_ids );
		} else {
			// If custom field value contain single ID to translate, usually used for image and file field types.
			$translated_id = apply_filters( 'wpml_object_id', $value, $fields[ $meta_data['key'] ], true, $target_language );

			return $translated_id;
		}
	}

	return $value_to_filter;
}
add_filter( 'wpml_duplicate_generic_string', 'wpml_fix_acf_duplication', 999, 3 );

HINWEIS: Sie sollten die Key => Value-Paare des Arrays durch die entsprechenden Werte ersetzen.

Ersetzen Sie Keys wie: ‚test_taxonomy‘, ‚test_image‘, ‚test_file‘ usw. durch die Feldnamen Ihrer Website, wie im folgenden Bildbeispiel gezeigt. image01
Ersetzen Sie Werte wie: ‚some_taxonomy_name‘, ‚attachment‘, post, page usw. entsprechend.
Dies ist der Elementtyp, zu dem die ID gehört. Dies kann post, page, attachment, {custom post type key}, nav_menu, nav_menu_item, category, post_tag, {custom taxonomy key} sein.

Weitere Informationen finden Sie hier in unserer Hook-Dokumentation.

Alle bekannten Probleme →