So bereinigen Sie sicher einen Textbereich, der vollständige HTML-Eingaben benötigt

9

Ich entwickle ein Plugin, mit dem der Benutzer HTML-E-Mails aus dem WordPress-Administrator heraus senden kann. Wie soll ich die Eingabe des Textbereichs bereinigen? Es muss in der Lage sein, alle HTML-Tags zu enthalten, die möglicherweise in einer HTML-E-Mail enthalten sind. Wenn ich wp_kses()dann benutze, müsste ich eine riesige Liste zulässiger Tags verwenden.

Der Textbereich speichert seinen Inhalt über benutzerdefinierte Optionen in der Datenbank.

Tommyf
quelle

Antworten:

14

Es gibt bereits eine große Liste für Sie , die wp_kses_allowed_html()basierend auf dem Kontext zurückgegeben und über den wp_kses_allowed_htmlFilter auch kontextbezogen gefiltert werden kann. Das Erstellen dieser Liste sollte nicht schwierig sein.

"Der gesamte Bereich der HTML-Tags, die möglicherweise in einer HTML-E-Mail enthalten sind" sollte jedoch ziemlich nahe an dem Bereich liegen, der für einen normalen Beitrag zulässig ist. Daher wp_kses_post()sollten Sie mit geringem Aufwand einen langen Weg zurücklegen.

s_ha_dum
quelle
Ja, das ist eine große Liste. Also importiere ich das einfach als Parameter und füge dann die Extras hinzu, die ich brauche, wie <html>und <body>so weiter
tommyf
Ja, wenn Ihre Benutzer so viel Markup enthalten müssen. Ich würde diesen Teil für sie generieren, wenn ich es wäre.
s_ha_dum