Zum Inhalt springen Zur Seitenleiste springen

Dieses Thema ist gelöst. Hier finden Sie eine Beschreibung des Problems und der Lösung.

Problem:
Der Kunde arbeitet an einer Website, wo ein mit Elementor Pro erstellter Loop verwendet wird. Die Inhalte werden mit ACF Custom Fields erzeugt und sind übersetzt. Der im Button hinterlegte Link verweist immer auf die deutsche Seite, auch in der fremdsprachigen Ansicht. Die Funktion 'Linkziele übersetzen' wurde mehrmals ohne Resultat angewendet.
Solution:
1. Stellen Sie sicher, dass das URL-Feld in ACF auf "Übersetzen" eingestellt ist und der "Experten-Modus" verwendet wird. Mehr dazu hier
2. Editieren Sie das Feld auf dem originalen Inhalt, speichern Sie den Inhalt und übersetzen Sie ihn dann erneut.
3. Wenn das Feld auf "Übersetzen" steht, sollte dessen Wert im Übersetzungseditor erscheinen. Stellen Sie sicher, dass das Feld nicht Teil eines Wiederholungsfeldes, einer Gruppe oder Tab ist, da solche Felder auf "Kopieren" eingestellt sein müssen.
4. Löschen Sie die Übersetzungen der Feldgruppen und stellen Sie den Beitragstyp "ACF Feldgruppe" auf "Nicht übersetzen".
5. Suchen Sie den Link im Übersetzungseditor, indem Sie "http" im Suchfeld eingeben.

Falls diese Lösung nicht relevant ist, weil sie veraltet ist oder nicht auf Ihren Fall zutrifft, empfehlen wir Ihnen, ein neues Support-Ticket zu öffnen. Wir empfehlen auch, die bekannten Probleme zu überprüfen, die Version der dauerhaften Lösung zu verifizieren und zu bestätigen, dass Sie die neuesten Versionen von Themes und Plugins installiert haben.

Dies ist das technische Support-Forum für WPML – das mehrsprachige WordPress-Plugin.

Mitlesen können alle, doch nur WPML-Kunden können hier Fragen veröffentlichen. Das WPML-Team antwortet im Forum an 6 Tagen pro Woche, 22 Stunden am Tag.

Dieses Thema enthält 10 Antworten, hat 0 Stimmen.

Zuletzt aktualisiert von Andreas W. Vor 2 Wochen, 3 Tage.

Assistiert von: Andreas W..

Autor Beiträge
August 8, 2025 um 11:29 am #17305242

dannyP-13

Hintergrund des Themas:
Ich arbeite an der Startseite der Website versteckter Link, wo im mittleren Bereich ein mit Elementor Pro erstellter Loop ist. Die Inhalte werden mit ACF Custom Fields erzeugt. Alle Inhalte der ACF Fields sind übersetzt. Die ACF Feldgruppe heißt 'Kursarten Inhalt', der Inhaltstyp heißt auch 'Kursarten'. In der Feldgruppe heißt das Feld 'Detail Link' und hat den Typ URL. Innerhalb der Feldgruppe habe ich aktuell die Option 'Experte' eingestellt.

Die Symptome:
Der im Button hinterlegte Link verweist immer auf die deutsche Seite, auch wenn ich mich in der fremdsprachigen Ansicht befinde. Die Funktion 'Linkziele übersetzen' wurde mehrmals ohne Resultat angewendet.

Fragen:
Warum verweist der im Button hinterlegte Link immer auf die deutsche Seite, auch wenn ich mich in der fremdsprachigen Ansicht befinde?
Wie kann ich die Funktion 'Linkziele übersetzen' erfolgreich anwenden, um das Problem zu beheben?

August 8, 2025 um 11:56 am #17305324

Andreas W.
WPML-Unterstützer seit 12/2018

Sprachen: Englisch (English ) Spanisch (Español ) Deutsch (Deutsch )

Zeitzone: America/Lima (GMT-05:00)

Hallo,

In WPML zusammen mit unserem Addon Advanced Custom Fields Multilingual ist das URL-Feld in ACF per Standard auf "Copy" eingestellt:
https://wpml.org/documentation/related-projects/translate-sites-built-with-acf/recommended-custom-fields-translation-preferences-for-acf-and-wpml/

In der Regel, sollten in dem Fall interne Links automatisch angepasst werden.
Welche Einstellung verwendet das betroffene Feld in der ACF-Feldgruppe?

Hast Du es bereits mit der Einstellung "Kopieren" versucht?

Editiere danach das Feld auf dem originalen Inhalt und übersetze den Inhalt dann erneut.

---

Da hier allerdings zusätzliche Elementor-Templates angewendet werden, scheint dies zu Probleme zu führen.

Sollte die Einstellunge "Kopieren" nicht funktionieren, würde ich in dem Fall dazu raten das Feld auf "Übersetzen" einzustellen.

Editiere danach das Feld auf dem originalen Inhalt und übersetze den Inhalt dann erneut, wobei Du dann auch den Link übersetzen können solltest.

Sollte das keine annehmbare Lösung darstellen, dann gib mir bitte Bescheid.

Mit freundlichen Grüßen
Andreas

August 11, 2025 um 10:23 am #17309083

dannyP-13

Hallo Andreas!

Vielen Dank für deine Antwort.

"Kopieren" war meine Einstellung, mit der es nicht funktioniert hat. Ich habe nun auf "Übersetzen" umgestellt. Das Problem, das ich zuvor nicht ausreichend kommuniziert habe, ist dass die URL innerhalb der ACF-Feldgruppe "Kursarten" sich gar nicht übersetzen lässt. Ich habe damit gar keine Möglichkeit, hier etwas auszutauschen. Hier habe ich auch explizit bei den Übersetzungseinstellungen "Übersetzen" ausgewählt - allerdings ohne Resultat.

Viele Grüße
Michael

August 12, 2025 um 2:43 pm #17314003

Andreas W.
WPML-Unterstützer seit 12/2018

Sprachen: Englisch (English ) Spanisch (Español ) Deutsch (Deutsch )

Zeitzone: America/Lima (GMT-05:00)

Ja, das Feld muss auf "Translate" stehen und es muss der "Expert"-Modus verwendet werden.

Mehr zum Thema:
https://wpml.org/errata/advanced-custom-fields-inability-to-translate-external-links-in-same-fields-across-languages-mode/

Nachdem eine Einstellung in ACF umgestellt wurde muss man das entsprechende Feld auf dem originalen Inhalt editieren, den Inhalt speichern und dann übersetzen.

Quelle:
https://wpml.org/errata/changing-translation-preferences-for-custom-fields/

Hast Du das bereits versucht?

Bitte teste die einmal und lass mich wissen, ob das Problem weiterhin auftritt.

August 14, 2025 um 12:38 pm #17321011

dannyP-13

Hallo Andreas,

vielen Dank für deine Antwort.

Bei der Feldgruppe Kursarten ist der "Experten-Modus" aktiviert habe, das URL-Field steht auf "translate". Ich habe die URL entfernt, gespeichert, dann wieder hineinkopiert und nochmal gespeichert.

Wenn ich dann übersetzen möchte, dann erscheint die URL gar nicht in der Übersetzung. An dieser Stelle stellt sich mir natürlich die Frage, ob eine URL überhaupt grundsätzlich übersetzbar ist, wenn sie da gar nicht auftaucht. Die Button-Beschriftung ist ja nicht das Problem.

Kurzum: Ich bin leider gar nicht weiter gekommen und brauche immer noch Unterstützung.

Vielen Dank und Grüße

Michael

August 14, 2025 um 12:47 pm #17321024

Andreas W.
WPML-Unterstützer seit 12/2018

Sprachen: Englisch (English ) Spanisch (Español ) Deutsch (Deutsch )

Zeitzone: America/Lima (GMT-05:00)

Hallo,

Wenn das Feld auf "Übersetzen" steht, sollte dessen Wert im Übersetzungseditor erscheinen.

Ist die Feldgruppe eventuell teil eines Wiederholungsfeldes, einer Gruppe, Tab, o.ä.?

Falls ja, müssen solche Felder auf "Kopieren" eingestellt sein.

Mehr zum Thema Feldeinstellungen in ACF:
https://wpml.org/documentation/related-projects/translate-sites-built-with-acf/recommended-custom-fields-translation-preferences-for-acf-and-wpml/

Mit freundlichen Grüßen
Andreas

August 14, 2025 um 2:19 pm #17321302

dannyP-13

Hallo Andreas!

Leider nein - die Feldgruppe ist kein Teil eines Wiederholungsfeldes o.ä.

Trotzdem habe ich die Einstellung "Kopieren" ausprobiert - aber auch ohne Resultat.

Wäre es vielleicht möglich, dass du einen Blick drauf wirfst, wenn ich die Website als Staging-Umgebung freigebe?

Vielen Dank für deine Mühe im Voraus.

August 14, 2025 um 2:44 pm #17321409

dannyP-13

Ich habe das Problem nun auf folgende Weise gelöst:

In der functions.php habe ich folgenden Code eingetragen:

// [localized_link field="detail_link"]
add_shortcode('localized_link', function($atts) {
$a = shortcode_atts(['field' => 'detail_link'], $atts);
global $post;
if (empty($post)) return '';

// 1) Wert dieser Sprache laden, sonst Default-Sprache
$value = get_field($a['field'], $post->ID);
if (empty($value)) {
$default_lang = apply_filters('wpml_default_language', null);
$ptype = get_post_type($post->ID) ?: 'post';
$orig_id = apply_filters('wpml_object_id', $post->ID, $ptype, true, $default_lang);
if ($orig_id) $value = get_field($a['field'], $orig_id);
}
if (empty($value)) return ''; // lieber kein href als about:blank

// 2) Relativ → absolut
if (strpos($value, 'http') !== 0) {
$value = home_url($value);
}

// 3) Externe Domains unverändert
$home_host = parse_url(home_url(), PHP_URL_HOST);
$url_host = parse_url($value, PHP_URL_HOST);
if ($url_host && $url_host !== $home_host) {
return esc_url($value);
}

// 4) Interne Seite ermitteln und übersetzen
$target_id = url_to_postid($value);
if ($target_id) {
$ptype = get_post_type($target_id) ?: 'page';
$translated = apply_filters('wpml_object_id', $target_id, $ptype, true); // auf aktuelle Sprache
if ($translated) return esc_url(get_permalink($translated));
}

// 5) Keine Zuordnung → Original zurück
return esc_url($value);
});

In das URL-Feld des Buttons habe ich dann kein ACF-Field mehr eingefügt, sondern einen dynamischen Shortcode:

[localized_link field="detail_link"]

Jetzt klappt's.

Hat dieses Vorgehen womöglich Auswirkungen auf die Funktionen von WPML, die ich grad nicht absehen kann?

Danke!

August 14, 2025 um 2:51 pm #17321419

Andreas W.
WPML-Unterstützer seit 12/2018

Sprachen: Englisch (English ) Spanisch (Español ) Deutsch (Deutsch )

Zeitzone: America/Lima (GMT-05:00)

Es sollte auch ohne diesen Workaround funktionieren.

Ich kann gerne anbieten mir das einmal genauer anzusehen.

Ich möchte einen temporären Zugriff (wp-admin und FTP) auf die Website anfordern, um das Problem genauer zu untersuchen.

Die dafür erforderlichen Felder findst Du unterhalb des Kommentarbereichs, wenn Du dich anmelden, um die nächste Antwort zu hinterlassen. Die Informationen, die Du angibst sind privat, was bedeutet, dass nur Du und ich sie sehen und darauf zugreifen können.

WICHTIG
Lege bitte unbedingt eine Sicherungskopie der Website und der Datenbank an, bevor Du uns den Zugriff gewährst.
Wenn Du die Felder "wp-admin / FTP" nicht sehen kannst, werden Ihre Anmeldedaten für Post und Website als "PUBLIC" (Öffentlich) festgelegt. Veröffentliche die Daten NICHT, es sei denn, Du siehst die erforderlichen wp-admin / FTP-Felder.

Ich muss hier ggfls. ein Plugin namens "All In One WP Migration" installieren, um eine Kopie der Website anzulegen, auf welche ich das Problem genauer untersuchen kann.

Ich wäre allerdings auch sehr dankbar, wenn Du zu diesem Zweck selbst eine Staging Site, bzw. Kopie der Website von Deinem Server aus bereitstellen könntest.

Bei Fragen zum Erstellen einer solchen Staging Site kannst Du deinen Hosting Anbieter konsultieren. Achte bitte darauf, dass WPML auf diesem Staging ebenso unter https://wpml.org/de/account/websites/ registriert sein muss.

Solltest Du dazu nicht in der Lage sein eine solche Kopie der Website zum Testen bereitzustellen, dann lass es mich bitte auf diesem Ticket wissen.

Das private Antwortformular sieht folgendermaßen aus:
versteckter Link

Klicke beim nächsten Antworten auf "I still need assistance".

Video:
versteckter Link

Beachte bitte, dass wir verpflichtet sind, diese Informationen auf jedem Ticket individuell anzufordern. Wir dürfen nicht auf Zugangsinformationen zugreifen, die nicht speziell auf diesem Ticket im privaten Antwortformular übermittelt wurden.

August 14, 2025 um 4:08 pm #17321611

Andreas W.
WPML-Unterstützer seit 12/2018

Sprachen: Englisch (English ) Spanisch (Español ) Deutsch (Deutsch )

Zeitzone: America/Lima (GMT-05:00)

Ich habe hier zunächst alle verfügbaren Updates ausgeführt.

Wenn ich richtig verstehe, geth es hier um die Feldgruppe, die auf den Kursarten verwendet wird, da dies die einizge Gruppe ist, bei der eine Einstellung für WPML vorliegt.

Mögliche Ursachen:

Die Feldgruppen sind aktuell in dem WPML-Einstellungen als "Übersetzbar" eingestellt.

Siehe WPML > Einstellungen > Beitragstypen übersetzen.

Bitte lösche die Übersetzungen der Feldgruppen und stellen den Beitragstyp auf "Nicht übersetzen".

Das Feld "detail_link" steht zudem aktuell auf "Kopieren". Es sollte auf "Übersetzen" gestellt werden. Danach muss das Feld auf dem originalen Inhalt editiert, der Inhalt erneut gespeichert und dann übersetzt werden.

August 14, 2025 um 4:13 pm #17321614

Andreas W.
WPML-Unterstützer seit 12/2018

Sprachen: Englisch (English ) Spanisch (Español ) Deutsch (Deutsch )

Zeitzone: America/Lima (GMT-05:00)

Den Link musst Du danach oben rechts im Übersetzungseditor suchen.

Gebe im Suchfeld "http" ein und Du solltest ihn finden.