質問: php コーディング標準、ウィジェット、およびサニタイズ カスタムウィジェットとwordpress coding standardsに問題があります。カスタムウィジェットを作成するとき、あなたのクラスはそのウィジェットを表示する "widget"メソッドを持つべきです。何かのようなもの:<?php public function widget( $args, $instance ) { echo $args['before_widget']; ?> <span><?php echo esc_html( 'great widget', 'text-domain' ); ?></span> <?php echo $args['after_widget']; } ?> これは完全に機能的ですが、$args['after_widget'];と$args['before_widget'];はエスケープされていないので、これはwordpressコーディング標準でのphp code snifferテストに合格しません...何がおかしいのですか?
回答: これらの引数は任意のhtmlを含み、適切にエスケープすることはできません。これは本質的にウィジェットコードがどのように設計されたかに対する制限であり、あなたはこれらがエスケープされていないことをコアwidgetクラスで見ることができます。学ぶべき教訓: wpコアは、独自のコーディング標準に一貫して準拠していません(そしてそれを実現することは、目標を絞った努力に値するとは見なされていません)。 あなた自身のコードでデータを渡し、適切なエスケープを使って適切にレンダリングすることで、htmlの塊の周りを渡すのは悪い考えです。