web-dev-qa-db-ja.com

__()で定義されているテキストを読む

WPプラグイン開発は初めてです。私は、翻訳のためにテキストが__()関数の中に含まれるというテーマを持っています。

__('This is text to be translated');

__()関数から値を取得し、自分で定義した関数を実行するプラグインを作成したいと思います。 __()内のテキストに次のものが含まれているとします。

__("This is JavaScript alert <script>alert('Hello');</script>");

私は私のプラグインがブラウザでそれを印刷する前に健全性チェックをすることを望みます。

function my_sanitizer($text) {
  $text = trim(strip_tags($text)); // The $text is value from __() of above
  return $text;
}

サニタイズされたテキストはブラウザに表示されます。

どのように私はこれに近づいているのでしょうか、どんなヒント、アイデア、解決策も評価されるでしょう。

1
user43217

国際化機能(__()、_e()など)によって翻訳されたテキストに適用される gettext フィルタフックを見てください。例えば:

add_filter( 'gettext', 'my_sanitizer', 20, 3 );
/**
 * my_sanitizer
 * @param  string $translated_text the translation
 * @param  string $text            the origial text from __()
 * @param  string $domain          text domain
 * @return string
 */
function my_sanitizer( $translated_text, $text, $domain ) {

    $translated_text = trim(strip_tags($translated_text)); 

    return $translated_text;
}
2
Bainternet