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: Bug
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 |
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? Mit freundlichen Grüßen |
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 |
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 |
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 |
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 Das private Antwortformular sieht folgendermaßen aus: Klicke beim nächsten Antworten auf "I still need assistance". Video: 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 |
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 Ich hoffe auf Dein Verständnis und erwarte Deine Antwort. Mit freundlichen Grüßen |
Oktober 13, 2023 unter 9:46 am #14571715 | |
uweW-7 |
Hallo Andreas, 1) Name der betroffenen Feldgruppe: Die betroffene Feldgruppe heißt "Infospalte" Viele Grüße |
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: 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 gehst Du hier per ACF vor, um den Shortcode im Templates auszugeben? Mit freundlichen Grüßen |
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. 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 |
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: 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 |
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 Viele Grüße |
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 |
Oktober 19, 2023 unter 4:01 pm #14617629 | |
uweW-7 |
Hallo, 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 |
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. 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: Englisch: --- 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 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 |