He leído WordPress profesional y dice:
esc_html
La función se utiliza para eliminar datos que contienen HTML. Esta función codifica caracteres especiales en sus entidades HTML
esc_attr
La función se utiliza para escapar de los atributos HTML
esc_url
. Esta función debe usarse para eliminar la URL de caracteres ilegales. Aunque href es técnicamente un atributo HTML
¿Cuál es la diferencia entre estos?
Si tengo
<script>alert('hello world!');</script>this is some content
¿Sería todo < >
convertido a < >
? ¿Será la URL algo así %xxx
?
fuente