Ce face esc_attr
esc_attr() (din WordPress 2.8.0) codifică <, >, &, ghilimelele duble și apostroful, fără să codifice a doua oară entitățile existente. Se folosește pentru orice valoare pusă între ghilimelele unui atribut: value, title, alt, placeholder, data-*, class.
Fără escapare, o valoare care conține " închide atributul, iar restul textului poate adăuga atribute noi, de exemplu onmouseover. Cu esc_attr(), ghilimelele devin " și rămân în interiorul valorii.
Ca la esc_html(), există esc_attr__() și esc_attr_e() pentru texte traductibile. Pentru atributele care conțin adrese (href, src, action) folosește esc_url().
Parametri
| Parametru | Descriere |
|---|---|
$text |
Valoarea de escapat. |
Ce returnează
Valoarea escapată (șir).
Exemple
Exemplul 1: Valoarea unui câmp de formular
Numele salvat conține ghilimele; esc_attr() le transformă în ", deci atributul value rămâne întreg.
<?php
$firma = 'Cafeneaua "La Ana"';
?>
<input type="text" name="dex_firma" value="<?php echo esc_attr( $firma ); ?>">
Ce afișează pagina
<input type="text" name="dex_firma" value="Cafeneaua "La Ana"">
Exemplul 2: Atribute alt și data-* pentru o imagine
Și textul alternativ, și atributul data-oras primesc esc_attr(); adresa imaginii primește esc_url().
<?php
$oras = "Iași & Cluj";
$alt = "Harta cafenelelor din Iași";
printf(
'<img src="%s" alt="%s" data-oras="%s">',
esc_url( 'https://exemplu.ro/img/harta.png' ),
esc_attr( $alt ),
esc_attr( $oras )
);
Ce afișează pagina
<img src="https://exemplu.ro/img/harta.png" alt="Harta cafenelelor din Iași" data-oras="Iași & Cluj">
Greșeli frecvente
- Atribute fără ghilimele (
value=<?php echo esc_attr( $x ); ?>): un spațiu în valoare începe un atribut nou. Pune mereu valoarea între ghilimele. esc_attr()pentruhrefsausrc: nu blochează adresejavascript:. Pentru adrese foloseșteesc_url().- Să escapezi de două ori cu funcții diferite (
esc_attr( esc_html( $x ) )): nu e nevoie, o singură funcție potrivită contextului ajunge.
Comenzi înrudite
esc_html: Escapează textul pentru afișare în HTML: transformă < > & și ghilimelele în entități, ca să nu fie interpretate ca cod.esc_url: Curăță o adresă pentru afișare în href sau src: respinge protocoalele nepermise și codifică & ca &.wp_nonce_field: Adaugă într-un formular un câmp ascuns cu un nonce, un cod care dovedește că cererea pornește chiar de pe site-ul tău.