esc_attr () richtig und verwenden

8

Zunächst möchte ich sagen, dass ich neu in WordPress bin, nicht sehr neu, aber 2 Monate. Meine Frage ist: -

  1. Ist es richtig, esc_attr () zu verwenden?
  2. und der richtige Weg, wie ich ihn benutze, ist richtig oder nicht

    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>';
    
    }  
    
Owaiz Yusufi
quelle

Antworten:

10

Nein, Sie benötigen keine esc_attr()Funktion, um festen statischen Text auszudrucken.

Sie benötigen es nur, um dynamischen oder generierten Text auszudrucken. Wenn die Attribute Sonderzeichen enthalten, die Ihren HTML-Code beschädigen können, esc_attrwird dies ordnungsgemäß vermieden.

In Ihrem speziellen Fall können Sie einfach schreiben:

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

Wenn Sie jedoch einen generierten oder vom Benutzer eingegebenen Text hatten, sollten Sie diesen verwenden esc_attr(). Zum Beispiel:

$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>';
Fayaz
quelle