[Warten auf das Feedback der Benutzer] Mehrsprachige Posts über PHP CLI anlegen/ updaten
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.
Hintergrund des Themas:
Ich versuche, mehrsprachige Posts über mein PHP-Skript zu importieren.
Dabei kommt es zu einem Fehler in der Datei plugins/sitepress-multilingual-cms/addons/wpml-page-builders/classes/Shared/st/class-wpml-pb-integration.php in Zeile 170.
Der ursprüngliche Code ist: if ( ! in_array( $_SERVER['REQUEST_METHOD'], [ 'POST', 'PUT', 'PATCH' ], true ) ) { return false; }
Ich habe den Code geändert zu: if (empty($_SERVER['REQUEST_METHOD']) || ! in_array( $_SERVER['REQUEST_METHOD'], [ 'POST', 'PUT', 'PATCH' ], true ) ) { return false; }
Der Verursacher scheint zu sein, dass empty($_SERVER['REQUEST_METHOD']) in der PHP-Logik fehlt.
Die Symptome:
PHP Notice: Undefined index: REQUEST_METHOD
Fragen:
Ist die Änderung im Code korrekt, um den Fehler zu vermeiden?
bevor Ihr Ticket einem meiner Kollegen zugewiesen wird, erlauben Sie mir bitte, Sie durch einige erste Schritte zur Fehlersuche zu führen.
Ja, das wäre korrekt. In Ihrem Fall möchten Sie lediglich prüfen, ob der Key existiert – nicht, ob er leer ist. Ein leerer Wert wie "0" wäre hier ohnehin unerheblich, da er nicht zu den erlaubten HTTP-Methoden gehört. Die Verwendung von isset() ist daher klarer, technisch präziser und zudem minimal performanter als empty().