web-dev-qa-db-fra.com

esc_attr () dans le bon sens et utilise

Tout d'abord je veux dire que je suis nouveau dans wordpress pas très nouveau mais 2 mois. Ma question est: -

  1. Est-il juste d'utiliser esc_attr ()
  2. et la bonne façon que j'utilise est-il juste ou pas

    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

Non, vous n'avez pas besoin de la fonction esc_attr() pour imprimer du texte statique fixe.

Vous en aurez uniquement besoin pour imprimer du texte dynamique ou généré. Ainsi, si les attributs comportent des caractères spéciaux risquant de rompre votre code HTML, esc_attr l’échappera correctement.

Dans votre cas particulier, vous pouvez simplement écrire:

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

Cependant, si vous avez généré du texte ou un texte saisi par l'utilisateur, vous devriez utiliser esc_attr(). Par exemple:

$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