web-dev-qa-db-ger.com

Soll ich immer esc_attr_e & esc_html_e anstatt von _e bevorzugen?

Ich arbeite daran, mein Plugin zu internationalisieren. Wie ich auf der Wordpress-Site über Esacaping sehen kann, heißt es, Sie sollten es immer verwenden. Aber wie ich in vielen populären Plugins sehen kann, haben sie stattdessen _e verwendet, abgesehen von wenigen speziellen Fällen. Soll ich es also immer für alle Zeichenfolgen verwenden oder nicht, wenn nicht, für welche speziellen Fälle sollten wir es verwenden?

1
learning_13

Entkomme immer der Ausgabe, es sei denn, du hast einen guten Grund, es nicht zu tun.

Die Hauptsache, die Sie verlieren, wenn Sie übersetzten Strings entkommen, ist die Fähigkeit, HTML-Tags und HTML-Entities in den ursprünglichen Strings und Übersetzungen zu verwenden, aber Sie sollten wahrscheinlich nicht in eine Situation geraten, in der Übersetzer HTML-Kenntnisse benötigen, um mehrere zu übersetzen Worte an erster Stelle.

Wenn Sie aus irgendeinem Grund eine HTML-Entität als Teil der Zeichenfolge einfügen müssen, können Sie printf/sprintf verwenden, um dem Übersetzer eine gewisse Flexibilität hinsichtlich der Position einer solchen Entität in einer Zeichenfolge zu geben

printf('%s&%s',esc_html__('first part','td'),esc_html__('second part','td'))

dabei ist & nur ein Beispiel für eine HTML-Entität.

Natürlich kann es komplexere Szenarien geben, die nicht auf vernünftige Weise zu umgehen sind, aber Ihr Licht sollte immer darauf gerichtet sein, standardmäßig zu entkommen.

2
Mark Kaplun