Dieses Thema ist gelöst. Hier finden Sie eine Beschreibung des Problems und der Lösung.
Problem:
Wenn du PHP-Warnungen in den Error Logs siehst, die auf undefinierte Array-Schlüssel in bestimmten Zeilen der Datei 'class-wpml-media-attachment-by-url-query.php' des WPML Media Translation Plugins hinweisen, könnte dies auf Probleme mit ungültigen URLs in deiner Mediathek zurückzuführen sein.
Solution:
Wir empfehlen, die URLs der Medien in deiner Website zu überprüfen. Hierfür haben wir ein Snippet in der 'functions.php'-Datei des Child Themes hinzugefügt, das die Medien nach ungültigen URLs durchsucht. Du kannst das Ergebnis dieser Überprüfung im Menü 'Media URL Check' einsehen. Sollte das Problem weiterhin bestehen, erlaube uns bitte weiterhin Zugriff auf deine Website, damit wir die Untersuchung fortsetzen können. Falls wir die Ursache nicht identifizieren können, werden wir den Second-Tier-Support hinzuziehen.
Bitte beachte, dass diese Lösung möglicherweise veraltet oder nicht auf dein spezifisches Problem anwendbar ist. Wir empfehlen dir, die bekannten Probleme zu überprüfen, die Version der dauerhaften Lösung zu verifizieren und sicherzustellen, dass du die neuesten Versionen von Themes und Plugins installiert hast. Sollte das Problem weiterhin bestehen, zögere nicht, ein neues Support-Ticket zu eröffnen.
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: Exception
Dieses Thema enthält 11 Antworten, hat 0 Stimmen.
Zuletzt aktualisiert von Andreas W. Vor 2 Monaten, 2 Wochen.
Assistiert von: Andreas W..
Autor | Beiträge |
---|---|
Juni 13, 2025 um 8:43 am #17132161 | |
cons-2 |
Hintergrund des Themas: Wir nutzen WPML mit ATE (deepL) und übersetzen alles automatisch. Die Symptome: Zeile 99: Die Fehelr treten z.T. zusammen auf (undefined key 1,2,3) oder auch mal nur einzeln (nur array key 1 undefined) Fragen: |
Juni 13, 2025 um 10:20 pm #17134825 | |
Andreas W. WPML-Unterstützer seit 12/2018 Sprachen: Englisch (English ) Spanisch (Español ) Deutsch (Deutsch ) Zeitzone: America/Lima (GMT-05:00) |
Hallo, Bevor wir etwas an die Entwickler weiterleiten können, müsse wir ein Problem zuerst replizieren können und ich bin mir sehr sicher, dass man das nicht ohen weitere auf einer neuen Test Site replizieren kann. Der Fehler bezieht sich hier auf das WPML Media Translation Plugin. Es ist möglich, dass dieser Fehler im Zusammenhang mit einem anderen Plugin oder dem verwendeten Theme oder gar Korrupten Einträgen in der Datenbank steht. Wir müssten zudem wissen, wann genau dieser Fehler auftritt. Ich vermute er sollte aktuell dann auftreten, wenn man versucht unter WPML > Media Translation eine Übersetzung anzulegen oder eine alternative Mediendatei in einer Zweitsprache hochzuladen. 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 Ich muss hier 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: 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 |
Juni 17, 2025 um 3:34 pm #17143188 | |
Andreas W. WPML-Unterstützer seit 12/2018 Sprachen: Englisch (English ) Spanisch (Español ) Deutsch (Deutsch ) Zeitzone: America/Lima (GMT-05:00) |
In der wp-config.php steht WP DEBUG auf: define('WP_DEBUG', 'false' === 'true'); Ich habe leider keine Erlaubnis diese Datei zu editieren. Bitte stelle den Eintrag auf: define('WP_DEBUG', true); Hinterlasse mit danach einen Kommentar auf diesem Ticket. |
Juni 18, 2025 um 12:47 pm #17146487 | |
cons-2 |
Danke für die Rückmeldung. Da werden wahrscheinlich sehr viele unnötige Kleinigkeiten drin stehen. |
Juni 18, 2025 um 9:46 pm #17148340 | |
Andreas W. WPML-Unterstützer seit 12/2018 Sprachen: Englisch (English ) Spanisch (Español ) Deutsch (Deutsch ) Zeitzone: America/Lima (GMT-05:00) |
Vielen Dank, allerdings existiert die berichtete Warnung im aktuellen debug.log nicht und ich finde auch sonst keine Einträge, die auf eine Fehler in WPML hindeuten. Das ist auch dann nicht der Fall, wenn ich eine Testseite anlege und übersetze. Kannst Du die Warnung auf dem Staging replizieren? |
Juni 19, 2025 um 12:29 pm #17150614 | |
cons-2 |
Hallo Andreas, ja, ich kann den Fehler auch auf der Testseite reproduzieren. 1. Startseite ansehen Eben probiert: |
Juni 20, 2025 um 6:57 am #17152856 | |
Andreas W. WPML-Unterstützer seit 12/2018 Sprachen: Englisch (English ) Spanisch (Español ) Deutsch (Deutsch ) Zeitzone: America/Lima (GMT-05:00) |
Der Fehler bleibt bestehen, wenn ich die Website mit dem Twenty Twenty-Five Theme und alleine WPML, unseren Addons und WPRocket teste. WPRocket lässt sich hier leider nicht deaktivieren und auf dem Raidboxes Server laufen im Hintergrund zudem einige Plugins unter /wp-content/mu-plugins. Der Fehler tritt anscheinend auf, sobald die Homepage gespeichert wird. Ein neues Bild muss dazu nicht zwingend eingefügt werden. Zudem fällt mir auf, dass der Fehler tritt auch dann auf, wenn ich unter WPML > Media Translation eine Übersetzung editiere und danach den Dialog zum Synchronisieren der Medien durchführe. Ich habe die Homepage dupliziert, nach und nach Inhalt entfernt und gespeichert. Der Fehler tritt sogar dann auf der duplizierten Homepage auf, nachdem der komplette Inhalt entfernt wurde. Lege ich allerdings eine komplett neue Seite an, kann der Fehler nicht repliziert werden. Die Ursache ist aktuell unklar und ich benötige etwas mehr Zeit, um die Ursache herauszufinden. |
Juni 20, 2025 um 1:24 pm #17154468 | |
cons-2 |
Hallo Andreas, danke für die Info. Dass es auch bei einer leeren Seite passiert, ist uns noch nicht aufgefallen. Bin gespannt, wie es weitergeht und wünsche dir viel erfolg bei der Fehlersuche. |
Juni 21, 2025 um 8:57 pm #17156433 | |
Andreas W. WPML-Unterstützer seit 12/2018 Sprachen: Englisch (English ) Spanisch (Español ) Deutsch (Deutsch ) Zeitzone: America/Lima (GMT-05:00) |
Auf deinem Staging sehe ich Fehler, wenn ich alleine mit WPML teste. Das ist auch dann der Fall, wenn ich WPML lösche und komplett neu installiere. Auf meiner lokalen Kopie der Website tritt der Fehler nicht auf. Dies bedeutet, dass dieser Fehler sehr wahrscheinlich durch die integrierten Plugins von Raidboxes entsteht, welche auf dem Staging im Hintergrund laufen. Ich würde dazu raten, dass Du den Raidboxes Support kontaktierst und diesen darum bittest einen Blick in das error.log des Servers zu werfen. Erkläre dort bitte, dass ein Fehler in WPML ausgelöst wird, der sich auf einer lokalen Test Site nicht bestätigen lässt. Der Grund könnten die verwendeten mu-plugins von Raidboxes sein. |
Juni 23, 2025 um 12:06 pm #17160086 | |
cons-2 |
Hallo Andreas, habe mir nun den WPML-Code an den beiden Stellen angeschaut, bevor wir raidboxes nun auch noch mit reinziehen. Der Fehler in Zeile 163 ist folgender: Habe dazu einfach mal ein array in die logs geprinted zum debuggen. Dabei ist mir aufgefallen, dass es zwei verschiedene Strukturen gibt, die dieses array, auf das im for-loop zugegriffen wird, haben kann. Wenn das array in der zweiten Form vorliegt, dann kommt es zu dem Fehler, weil WPML im for loop numerische keys von 0 bis n annimmt. Die keys in Form 2 sind jedoch weder geordnet noch numerisch. Hier einmal euer code: // We should put not found values into the cache too, otherwise they will be still queried later. $pathes_count = count( $pathes ); error_log(json_encode(['wpml_debug_url_query'=>'','$pathes'=>$pathes])); for ( $i = 0; $i < $pathes_count; $i++ ) { $index = md5( $language . $pathes[ $i ] ); $this->setItemToCache( null, 'id_from_meta_cache', $index ); } Hier eine verbesserte Version, die keine Fehler erzeugt: // We should put not found values into the cache too, otherwise they will be still queried later. $pathes_count = count( $pathes ); $path_values = array_values( $pathes ); error_log(json_encode(['wpml_debug_url_query'=>'','$pathes'=>$pathes, '$path_values'=>$path_values])); for ( $i = 0; $i < $pathes_count; $i++ ) { $index = md5( $language . $path_values[ $i ] ); $this->setItemToCache( null, 'id_from_meta_cache', $index ); } Der gleiche Fehler ist auch in dem for-loop in Zeile 99, Funktion prefetchAllIdsFromGuids: // We should put not found values into the cache too, otherwise they will be still queried later. $urls_count = count( $urls ); for ( $i = 0; $i < $urls_count; $i++ ) { $index = md5( $language . $urls[ $i ] ); $this->setItemToCache( null, 'id_from_guid_cache', $index ); } Verbesserung, ohne Fehler: Ich habe die Verbesserungen auf einer separaten internen Testseite von uns geprüft, die Warnungen in den Logs verschwinden damit. Eure Entwickler müssten an der Stelle abwägen, ob array_values mit for-loop oder ein foreach-loop besser geeignet ist. Ich vermute, dass der for-loop aufgrund von Performance-Optimierung existiert. Kann sein, dass der Vorteil nun weg ist, wenn der for-loop mit array_values kombiniert wird, habe jetzt keine Benchmarks gemacht. Bitte prüft euren Code und integriert die Verbesserung in das nächste Update. |
Juni 24, 2025 um 8:52 am #17163693 | |
Andreas W. WPML-Unterstützer seit 12/2018 Sprachen: Englisch (English ) Spanisch (Español ) Deutsch (Deutsch ) Zeitzone: America/Lima (GMT-05:00) |
Beachte bitte: Dies scheint ein Problem zu sein, dass nur auf Raidboxes oder gar nur auf deinem verwendeten Server oder speziell auf deiner Website auftritt. Bitte erlaube uns weiterhin den Zugriff zur bereitgestellten Website, weil wir das Problem sonst nicht untersuchen können. Sollte ich die Ursache heute nicht herausfinden können, werde ich den Second-Tier-Support konsultieren. |
Juni 25, 2025 um 6:41 am #17167184 | |
Andreas W. WPML-Unterstützer seit 12/2018 Sprachen: Englisch (English ) Spanisch (Español ) Deutsch (Deutsch ) Zeitzone: America/Lima (GMT-05:00) |
Der Fehler bezieht sich auf eine Klasse in WPML Media Translation, die versucht Medien auf Basis ihrer Source URL zu identifizieren. Ich habe ein Snippet erstellt, der die hochgeladenen Medien nach ungültigen URLs untersucht. Das Snippet befindet sich am Ende der functions.php Datei des Child Themes. Den Check und da Ergebnis sieht man im Menü "Media URL Check". Hier gibt es anscheinend viele URLs, die nicht auf eine gültige Datei verlinken. Die Ursache ist, dass die originale Datei nicht mehr gefunden werden kann. Das Problem liegt demnach nicht an WPML, sondern an ungültigen Image Source URLs in der Mediathek. |