Navigation überspringen

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

Problem:
Der Benutzer hat einen Shortcode erstellt, der eine WP Post Query aufruft und diesen Shortcode in ein WYSIWYG-Feld von ACF einfügt. Bei Verwendung der neuesten Version unseres Add-ons ACFML führt dieser Workflow plötzlich zu einem weißen Bildschirmfehler.

Solution:
Das Problem tritt nicht auf, wenn ein normales ACF-Textfeld verwendet wird.

Das berichtete Problem wurde zudem an unsere Entwickler weitergeleitet und wird möglicherweise in einem zukünftigen Update von "Advanced Custom Fields Multilingual" behoben.

Der Second Tier Support hat zudem empfohlen den Code des Shortcodes in folgende Kondition zu verschachteln, wodurch sich das Problem bei meinem Test ebenfalls löst:

function my_shortcode($atts) {      
if (!is_admin()) {
  // your code here
  }
}

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.

Schlagwörter: 

Dieses Thema enthält 30 Antworten, hat 2 Stimmen.

Zuletzt aktualisiert von Andreas W. Vor 1 Jahr, 1 Monat.

Assistiert von: Andreas W..

Verfasser Beiträge
Oktober 5, 2023 unter 1:48 pm #14520823

uweW-7

Ich versuche: einen selbst programmierten Shortcode in ein per ACF erstelltes Feld einzufügen, der Inhalte eines Custom Post Types ausgibt. Die Seite lässt sich bis Version 2.0.2 von ACF ML problemlos nutzen, zeigt nach einem Update auf die aktuellste Version aber nur noch eine weiße Seite an. In der debug.log stehen keine Fehlermeldungen und auch bei entsprechender Konfiguration der WP Config ('WP_DEBUG' auf true) werden keine Fehlermeldungen ausgegeben.

URL der/meiner Website, auf der das Problem auftritt: im Backend der oben angegebenen URL (lokale Entwicklungsversion) und auch auf der zugehörigen Live-Website

Erwartet hatte ich zu sehen: den Gutenberg Editor von WordPress

Stattdessen bekam ich: eine weiße Seite

Der folgende Quellcode des Shortcodes verursacht den Fehler:

function team_shortcode($atts) {
    $atts = shortcode_atts(array(
        'name' => ''
    ), $atts);

    $args = array(
        'name' => sanitize_title($atts['name']),
        'post_type' => 'team',
        'post_status' => 'publish',
    );

    $string = '<p>';
    ob_start();
    $query = new WP_Query($args);
    if($query->have_posts()) {
        while($query->have_posts()) {
            $query->the_post();
            if(get_field('titel')){
                echo get_field('titel').' ';
            }
            echo get_field('vorname').' '.get_field('nachname').'<br>T <a href="tel:'.get_field('telefonnummer_link').'">'.get_field('telefonnummer').'</a>';
            if(get_field('fax')){
                echo '<br>F '.get_field('fax');
            }
            if(get_field('e-mail')){
                echo '<br><a href="mailto:'.get_field('e-mail').'">'.get_field('e-mail').'</a>';
            }
        }
    }
    wp_reset_query();
    $string .= ob_get_clean();
    $string .= '</p>';
    return $string;
}
add_shortcode('Ansprechpartner', 'team_shortcode');

Dieser Code funktioniert bis Version 2.0.2 des Plugins ACF ML problemlos. Nach einem Update auf die aktuellste Version jedoch nicht mehr. Die Änderungen in folgender Datei des Plugins verursachen den Fehler: wp-content/plugins/acfml/classes/strategy/repeater-sync/PostHooks.php
Sobald man diese Datei gegen die Datei aus Version 2.0.2 austauscht, funktioniert wieder alles.

Oktober 5, 2023 unter 6:13 pm #14522659

Andreas W.
Supporter

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

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

Hallo,

Der Inhalt wird im WordPress Editor oder im WPML Übersetzungseditor übersetzt?

Welche Einstellung verwendet hier Deine ACF Feldgruppe?

https://wpml.org/documentation/related-projects/translate-sites-built-with-acf/#using-the-acf-multilingual-setup

Mit freundlichen Grüßen
Andreas

Oktober 6, 2023 unter 7:02 am #14524443

uweW-7

Hi Andreas,

der Inhalt wird über den WordPress Editor übersetzt.

Die ACF Feldgruppe wird im "Expertenmodus" übersetzt. Da die Seite schon etwas älter ist und es diese Optionen zum Umsetzungszeitpunkt noch nicht gab, trifft dies auf alle Feldgruppen zu. Diese spezielle Feldgruppe beinhaltet nur ein Feld vom Typ "WYSIWYG-Editor" und auf "übersetzen" gestellt.

Viele Grüße
Mareike

Oktober 6, 2023 unter 2:30 pm #14529341

Andreas W.
Supporter

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

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

Hallo Mareike,

Bitte stelle sicher, dass der Beitragstyp "Feldgruppe" unter WPML > Einstellungen > Beitragstypen übersetzen als "Nicht übersetzbar" eingestellt ist.

Wenn Du den WordPress-Editor verwendest, dann kannst Du die Feldgruppen auf "Unterschiedliche Felder pro Sprache" einstellen und WPML legt alle Einstellungen entsprechend korrekt an.

Kannst Du das bitte einmal testen?

Mit freundlichen Grüßen
Andreas

Oktober 9, 2023 unter 7:29 am #14536513

uweW-7

Hallo Andreas,

der Beitragstyp "Feldgruppe" ist bereits auf "nicht übersetzbar" gestellt gewesen.

Die Einstellung für die Feldgruppe habe ich auf "Verschiedene Felder in allen Sprachen" geändert und auch testweise die Option "Gleiche Felder in allen Sprachen" gewählt, da die Feldgruppe aktuell für alle Sprachen nur ein einziges, genau gleiches Feld enthält (nur mit unterschiedlichen Übersetzungen), aber leider macht beides keinen Unterschied.

Vielleicht hilft das noch etwas: Bei Bearbeiten der Seite wird zwar in der URL die richtige ID der zu bearbeitenden Seite angezeigt, jedoch steht im Title der Name des Posts, der per Shortcode in das ACF-Feld eingefügt wird. Dieser Post existiert und ist veröffentlicht. Es wird immer der Titel des letzten Posts angezeigt, der per Shortcode referenziert wird.

Viele Grüße
Mareike

Oktober 10, 2023 unter 6:07 pm #14553347

Andreas W.
Supporter

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

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

Hallo,

Die Option "Verschiedene Felder in allen Sprachen" soll nur dann verwendet werden, wenn der Inhalt mit dem WordPress Editor übersetzt wird.

"Gleiche Felder in allen Sprachen" soll nur dann verwendet werden, wenn der Inhalt mit dem WPML Übersetzungseditor übersetz wird.

Man sollte nie einen Inhalt mit dem WordPress Editor übersetzen, wenn für den Inhalt der WPML Übersetzungseditor aktiviert ist.

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.

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.

Mit freundlichen Grüßen
Andreas

Oktober 12, 2023 unter 10:05 pm #14569321

Andreas W.
Supporter

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

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

Hallo Mareike,

Es tut mir leid, aber ich habe so viele Anfragen, dass es mir unmöglich ist auf jeder Website alle Inhalte zu durchsuchen, um ein Problem zu finden.

Nenne mir bitte Folgendes:

1) Name der betroffenen Feldgruppe
2) Name des verwendeten Templates
3) Title oder Link zum Inhalt, auf dem ich das Problem sehen kann

Ich hoffe auf Dein Verständnis und erwarte Deine Antwort.

Mit freundlichen Grüßen
Andreas

Oktober 13, 2023 unter 9:46 am #14571715

uweW-7

Hallo Andreas,

1) Name der betroffenen Feldgruppe: Die betroffene Feldgruppe heißt "Infospalte"
2) Name des verwendeten Templates: Die Template-Datei heißt template-infospalte.php bzw. in WordPress "Mit Infospalte".
3) Title oder Link zum Inhalt, auf dem ich das Problem sehen kann: Der Fehler betrifft alle Seiten mit diesem Template und dem eingangs erwähnten Shortcode. Beispielseiten: "Über uns" -> "Publikationen" oder "Tagen & Feiern" -> "Buchen & Kontakt"

Viele Grüße
Mareike

Oktober 14, 2023 unter 4:06 am #14576107

Andreas W.
Supporter

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

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

Hallo,

Die Gruppe "Infospalte" ist ein WYSIWYG-Feld, welches auf übersetzen gestellt ist. Dieses Feld wirst Du mit dem Advanced Translation Editor nicht übersetzen können, da dieser nur Text ausgibt.

Du könntest es alleine mit dem Classic Translation Editor oder direkt im WordPress Editor übersetzen.

Frage hierzu:
Das Templates "Mit Infospalte" oder andere Templates kann ich Backend nicht auffinden.

Es handelt sich hierbei anscheinend um eine PHP-Datei im Theme, korrekt?

Theme Templates, die direkt im Theme hinterlegt werden, können nur per WPML > Stringübersetzung übersetzt werden.

Ich muss zudem fragen:
Wie erwartest Du hier, dass ein WYSIWYG-Feld aus ACF auf ein Template, in einer Theme-Datei eingreift, wenn sich dieses Template nicht im Backend editieren lässt?

Wie gehst Du hier per ACF vor, um den Shortcode im Templates auszugeben?

Mit freundlichen Grüßen
Andreas

Oktober 16, 2023 unter 1:20 pm #14585375

uweW-7

Hallo,

die in meiner letzten Seite als erstes Beispiel genannte Seite "Publikationen" (Unterseite zu "Über uns") besitzt aktuell überhaupt keine Übersetzung und weist dennoch den Fehler auf. Dieser verschwindet, sobald das Plugin Advanced Custom Fields Multilingual entweder deaktiviert oder auf Version 2.0.2 zurückgesetzt wird.

Das Template "Mit Infospalte" lässt sich bei Anlegen einer neuen Seite auswählen oder aber auch für bestehende Seiten entsprechend ändern (rechts bei der Auswahl der Veröffentlichungseinstellungen). Und ja, es handelt sich dabei um ein PHP-Template, welches für Seiten in WordPress gewählt werden kann.

Die Stringübersetzung verwenden wir für Texte, die mit entsprechender WordPressfunktionen, wie z.B. _e(), direkt im Template hinterlegt sind.
Das hier beschriebene WYSIWYG-Feld wird per entsprechender ACF-Funktion get_field() bzw. the_field() im Template ausgegeben und zeigt somit nur den Inhalt, der im WordPress-Editor für dieses Feld für die jeweilige Unterseite, die dieses Template verwendet, eingetragen wurde. In dieses Feld eingetragene Shortcodes werden von WordPress automatisch interpretiert. Hierbei handelt es sich um Standardfunktionen des ACF-Plugins, welche bis Version 2.0.2 von Advanced Custom Fields Multilingual einwandfrei funktioniert haben und nun in der aktuellsten Version nicht mehr gehen.

Die entsprechende Datei, die sich beim Update geändert hat, und vermutlich den Fehler verursacht, habe ich in meiner ersten Nachrichten notiert.

Viele Grüße
Mareike

Oktober 17, 2023 unter 4:26 pm #14596613

Andreas W.
Supporter

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

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

Hallo Mareike,

Ich habe das Verwenden von ACF mit WPML in diesem Form ehrlich gesagt noch nie getsetet, weil wir eigentlich nur dann Übersetzung ermöglichen, wenn das ACF Multilingual Addon verwendet wird, um ACF Felder im WordPress Editor oder dem WPML Übersetzungseditor zu übersetzen.

Die Übersetzung durch die WPML Stringübersetzung ist in diesem Fall eigentlich nicht vorgesehen.

Dokumentation:
https://wpml.org/documentation/related-projects/translate-sites-built-with-acf/

Hast Du eventuell einmal versucht das Theme unter WPML > Theme und Plugin Lokalisierung nach neuen Strings zu scannen und danach das Feld unter WPML > String-Übersetzung zu finden und zu übersetzen?

Mit freundlichen Grüßen
Andreas

Oktober 18, 2023 unter 2:05 pm #14604905

uweW-7

Hallo Andreas,

die Stringübersetzung wird an dieser Stelle überhaupt nicht benötigt und kann auch nicht funktionieren, da das Feld ja auf jeder Seite einen anderen Inhalt hat.

Wir verwenden das ACF Multilingual Addon ausschließlich um den INHALT der Felder zu übersetzen. Die Feldnamen und Beschreibungen sind für alle Sprachen genau gleich. Wir haben auch kein Problem damit neue Felder per ACF anzulegen oder diese zu bearbeiten. Der Fehler tritt ausschließlich bei der Bearbeitung einzelner Seiten auf sobald dort ein Shortcode eingefügt wird oder falls schon einer eingefügt ist.

Der nachfolgende Beitrag beschreibt ebenfalls exakt unser Problem, hat aber auch leider noch keine Lösung: https://wpml.org/de/forums/topic/advanced-custom-fields-multilingual-verursacht-einen-fehler-bei-custom-post-type/

Nochmal der genaue Weg zur Nachstellung des Fehlers, falls etwas unklar sein sollte: die oben angegebene Testseite aufrufen -> in WordPress einloggen -> in der Navigation der Website auf "Über uns" gehen -> die Unterseite "Publikationen" (in der Spalte "Projekte") auswählen -> die Seite "Publikationen" über die WP Admin Bar bearbeiten
Statt des Gutenberg Editors ist nur eine weiße Seite zu sehen. Es ist nicht nötig die Übersetzung zu bearbeiten. Der Fehler wird so direkt sichtbar.

Viele Grüße
Mareike

Oktober 18, 2023 unter 3:05 pm #14606153

Andreas W.
Supporter

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

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

Hallo,

Ich habe den originalen Inhalt der Seite "Publikationen" kurz editiert und die Seite erneut gespeichert und nun öffnet sich das Advanced Translation Editor, um die Übersetzung anzulegen.

Solltest Du den Inhalt mit dem WordPress Editor übersetzen wollen, dann solltest Du den aktuellen Übersetzungsauftrag zuerst unter WPML > Übersetzungsmanagement > Aufträge abbrechen und musst danach auf dem Originalinhalt dieser in der rechten Seitenleiste als Übersetzungsmethode eingestellt werden.

Wird hier ein unterschiedlicher Shortcode pro Sprache verwendet?

Mit freundlichen Grüßen
Andreas

Oktober 19, 2023 unter 4:01 pm #14617629

uweW-7

Hallo,
soweit komme ich gar nicht erst. Der Inhalt lässt sich bei mir nur dann editieren, wenn ich vorher das ACF ML Addon entweder deaktiviere oder auf Version 2.0.2 zurücksetze. Andernfalls ist beim Bearbeiten nur eine leere weiße Seite sichtbar und keine Möglichkeit, Inhalte zu editieren. Dies passiert in den jeweils aktuellen Versionen von Chrome und Firefox.
Ist das Verhalten bei dir ein anderes?

Der Shortcode ist pro Sprache gleich. Da mit dem Shortcode allerdings ein Post ausgegeben wird, kann dieser allerdings natürlich unterschiedliche Inhalte haben.

Viele Grüße
Mareike

Oktober 19, 2023 unter 5:43 pm #14618325

Andreas W.
Supporter

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

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

Hallo Mareike,

Ich kann das leider nicht bestätigen.

Auf der Website ist aktuell Advanced Custom Fields Multilingual 2.0.5 aktive und ich sehe hier folgende Probleme:

Man kann mit WPML entweder mit einer der WPML Übersetzungseditoren (Classic Translation Editor und Advanced Translation Editor) oder mit dem WordPress-Editor übersetzen.

Man sollte sich dabei immer an die eingestellte Methode des Inhaltes halten.

Bei meinem Test wird die Seite "Publikationen" mit dem Advanced Translation Editor übersetzt, weil im Originalinhalt in der rechten Seitenleiste der WPML Übersetzungseditor aktiviert.

Siehe Screenshot. Der Inhalt ist hier noch nicht zu 100% übersetzt.

---

Solltest Du hier mit dem WordPress Editor übersetzen, dann musst Du diesen als Übersetzungsmethode des Inhaltes einstellen.

Ich hatte die vorgehensweise dazu bereits erklärt.

Anleitung:
https://wpml.org/documentation/translating-your-contents/using-different-translation-editors-for-different-pages/

Wenn ich die englische Version der Seite "Publikationen" im WordPress-Editor öffne sehe ich alle Felder und keinen Fehler. Allerdings ist die Seite noch als Entwurf gespeichert und deshalb für Besucher der Website nicht sichtbar.

Einen Fehler mit einem "weissen Bildschirm" sehe ich hier nicht. Ich kann den WordPress Editor beider Seiten entweder vom Backend oder vom Frontend aus problemlos öffnen.

---

Zu ACF:

Im Frontend sehe ich die gleichen Ergebnisse auf beiden Seiten:

Deutsch:
versteckter Link

Englisch:
versteckter Link

---

Auf der Seite "Publikationen" im WordPress Editor liegt eine ACF-Felder vor, das man beim übersetzen nicht berücksichtigen kann, weil es nicht im WordPress Editor editiert werden kann:

titelslider_shortcode
ACF-Feldname: Titelslider Shortcode ACF-Feldtyp: text

Ich sehe hier kein Feld, in welchem man einen Shortcode einfügen kann.

Wenn der gleiche Shortcode in allen Sprachen verwendet wird, dann stelle das Feld bitte auf "Kopieren".

Deshalb meine erneut meine Frage:

Wo wird der Shortcode im Backend in ein ACF-Feld eingegeben?

--

Zum Shortcode:

Wenn dieser Shortcode hier nicht wie erwartet die oder den übersetzen Post(s) ausgibt, dann liegt das am Design des Shortcodes und wir können das gerne einmal auf einer Test Site replizieren und testen.

Mit freundlichen Grüßen
Andreas

seite.png