私は人々がesc_html()
のような特定のWP関数でesc_url()
かhome_url('/')
のどちらかを使っている状況に出会いました。 <a>
の最初のアンカータグにある例は、次のようにホームページにリンクバックします。
<a href="<?php echo esc_url( home_url( '/' ) ); ?>">
どのWP関数をエスケープする必要があるのか、またesc_html()
とesc_url()
のどちらを使用するのかはどのように判断しますか。
どんなアドバイスやガイダンスも素晴らしいでしょう。
データを返すもの.
これは、変数がエスケープされても疑いがないように、常にエスケープを遅らせるべきだからです。
home_url
などのAPIの出力が事前にエスケープされている場合、これはもはや当てはまりません。また、二重エスケープも導入されます。これは、一部のシナリオで過去のエスケープを回避するために使用できます。
いくつかのさらなるメモ:
the_permalink
のような関数をesc_url
などでラップしようとしないでください。エスケープ関数はまだ関数であり、何かを保護するようにPHPに指示する魔法の修飾子や蛍光ペンではありません。信頼できないデータ(データベースからのデータを含む)の出力はサニタイズする必要があります。 WordPress Codexは利用可能な機能について説明しています: https://codex.wordpress.org/Data_Validation
WordPress Coding Standards に従ったコードスニファは、WordPressのコア機能からの出力もサニタイズする必要があります。たとえば、PhpStormでそのようなコードスニファをオンにすることができます。
時にはそのような要件は過大ですが、より信頼性の高いコードを得るためにはコーディング標準に従うことをお勧めします。