Eu li o WordPress profissional e ele diz:
esc_htmlA função é usada para limpar dados que contêm HTML. Esta função codifica caracteres especiais em suas entidades HTML
esc_attrA função é usada para escape de atributos HTML
esc_url. Esta função deve ser usada para limpar a URL quanto a caracteres ilegais. Mesmo que o href seja tecnicamente um atributo HTML
Qual a diferença entre estes?
Se eu tiver
<script>alert('hello world!');</script>this is some content
Todos < >seriam convertidos para < >? O URL será algo parecido %xxx?