まず第一に、私はワードプレスの新人であることを伝えたいと思います。私の質問は:
私が使っている正しい方法は正しいかどうか
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>';
}
いいえ、固定の静的テキストを印刷するのに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>';