Eine Lösung für WordPress, bbPress und das Problem mit dem Backslashes


Auf dem GCP benutzen wir als Forum bbPress integriert in WordPress. Dabei hatten wir ein besonders hartnäckiges Problem: Wurde im Forum etwas gepostet das Anführungszeichen (“ oder ‚) enthielt, dann erschienen davor immer Backslashes. Mit jeder Änderung wurden es mehr. (“ -> \“ -> \\\“ usw.). Das Problem ist bekannt und zig Lösungen und Workarounds sind im Internet zu finden, nur so richtig wollte keine davon bei uns funktionieren.

Heute bin ich endlich auf die Ursache und damit die Lösung des Problems gestoßen (nach erneuter, langer Suche und diesem Blog-Post): In wp-settings.php und in bb-settings.php werden diverse Input-Variablen „bereinigt“. Beide führen unter anderem addslashes auf $_POST aus. Durch die Integration wird das ganze also zwei Mal ausgeführt, bei der Verwendung wird aber selbstverständlich immer nur ein Mal stripslashes verwendet.

Die Lösung ist also ganz einfach in bb-settings.php Zeile 482 ($_POST   = bb_global_sanitize( $_POST );) auszukommentieren, da dies schon in wp-settings.php erledigt wurde, und dann klappt’s auch mit den Backslashes.