web-dev-qa-db-ja.com

esc_attr()の正しい使い方と使い方

まず第一に、私はワードプレスの新人であることを伝えたいと思います。私の質問は:

  1. Esc_attr()を使用するのは正しいですか
  2. 私が使っている正しい方法は正しいかどうか

    function dr_enable_and_disable_header() {
    
      $options = get_option( 'custom_header' );
      $checked = ( isset($options) && $options == 1 ? 'checked' : '');
      echo '<lable><input type="' . esc_attr('checkbox') . '" id="' . esc_attr('custom_header') . '" name="' . esc_attr('custom_header') . '" value="' . esc_attr('1') . '" '. $checked .'> Activate Custom Header</lable>';
    
    }  
    
5
Owaiz Yusufi

いいえ、固定の静的テキストを印刷するのにesc_attr()関数は必要ありません。

動的テキストまたは生成されたテキストを出力するためだけに必要なので、属性にHTMLを破壊する可能性のある特殊文字が含まれている場合、esc_attrはそれを正しくエスケープします。

あなたの特定のケースでは、あなただけ書くことができます:

echo '<label><input type="checkbox" id="custom_header" name="custom_header" value="1" '. $checked .'> Activate Custom Header</label>';

ただし、生成テキストまたはユーザー入力テキストがある場合は、esc_attr()を使用してください。例えば:

$style = "__Some generated text from database or user input__";
echo '<label><input type="checkbox" id="custom_header" name="custom_header" value="1" '. $checked .' style="' . esc_attr($style) . '"> Activate Custom Header</label>';
4
Fayaz