web-dev-qa-db-ja.com

_eでははなくesc_attr_eとesc_html_eを常用する必要がありますか?

私は自分のプラグインを国際化するために働いています。 Wordpressのサイトで エスケープ について見ることができるように、それはあなたがいつもそれを使うべきであると言います。しかし、私が多くの人気のあるプラグインで見ることができるように、それらは少数の特定のケースを除いて代わりに_eを使いました。それでは、すべての文字列に対して常にエスケープ処理を使用するのか、または使用しないのがよいでしょう。

1
learning_13

あなたがすばらしいしない理由がない限り、常に出力をエスケープします。

翻訳された文字列をエスケープするときに失う主なことは、元の文字列と翻訳でhtmlタグとhtmlエンティティを使用できることです。そもそもの言葉。

何らかの理由でHTMLエンティティを文字列の一部として含める必要がある場合は、printf/sprintfを使用して、文字列内のそのようなエンティティの場所に、次のような柔軟性をある程度与えることができます。

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

ここで&はHTMLエンティティの単なる例です。

当然のことながら逃げることは不可能かもしれないより複雑なシナリオがあるかもしれませんが、あなたのガイドライトは常にデフォルトで逃げることであるべきです。

2
Mark Kaplun