Había mirado el código pero no pude ver ningún escape en funciones como the_title
the_content
the_excerpt
etc. Puede que no lo esté leyendo bien. ¿Necesito escapar de estas funciones en el desarrollo de temas como:
esc_html ( the_title () )
Editar: como se señaló en las respuestas a continuación, el código anterior es incorrecto, independientemente de que el código debería haber leído
esc_html ( get_the_title () )
the_content
que genera HTML desde el editor TinyMCE, en el que ingresa. Esto está más reservado para entradas de formulario o datos creados en el front-end, por ejemplo, por sus usuarios.Respuestas:
Escapar depende completamente del contexto en el que está utilizando las funciones. Lo que es seguro para mostrar dentro de las
<h1>
etiquetas, no es necesariamente seguro para mostrar elvalue
atributo de un campo de entrada, e incluso eso no necesariamente sería seguro como unhref
valor de atributo ...En resumen: realice la desinfección usted mismo mientras la emite. Aunque en el caso de
the_title ()
oget_the_title ()
,esc_html
no es necesario, ya que WordPress aplica las siguientes funciones:convert_chars
wptexturize
Nota:
the_title
imprime el título, poresc_html ( the_title () )
lo que no funcionará. Del mismo modo,the_content
imprime el contenido (en cualquier caso, esperaría que el contenido muestre HTML).fuente
the_title_attribute()
Sí y no: depende de si desea que se genere html en esas funciones o no. Si escapa
the_content()
, por ejemplo, y contiene una<div>
etiqueta, esa etiqueta en realidad se enviará a la página<div>
.Por cierto, si escapas de la salida de esas funciones, querrás usar sus equivalentes "get_" (ej.
get_the_content()
) Ya que esas funciones hacen eco de su salida directamente.fuente
Simplemente puede escribir una función como esta y conectarla al filtro de título :
fuente