¿Debo escapar de las funciones de wordpress como the_title, the_excerpt, the_content

12

Miré el código pero no pude ver ningún escape en funciones como the_title the_content the_excerpt etc. Puede que no esté leyendo bien. ¿Debo escapar de estas funciones en el desarrollo de temas como:

esc_html ( the_title () )

Editar: como se señaló en las respuestas debajo del código anterior es incorrecto, sin embargo, el código debería haber leído esc_html ( get_the_title () )

    
pregunta byronyasgur 18.05.2012 - 18:10

3 respuestas

14

El escape depende completamente del contexto en el que está utilizando las funciones. Lo que es seguro para mostrar dentro de las etiquetas <h1> , no es necesariamente seguro mostrarlo para el atributo value de un campo de entrada, e incluso eso no sería necesariamente seguro como un valor de atributo href ....

En resumen: realice la desinfección usted mismo a medida que la expanda. Aunque en el caso de the_title () o get_the_title () , esc_html no es necesario, ya que WordPress aplica las siguientes funciones:

Nota: the_title imprime el título, por lo que esc_html ( the_title () ) no funcionará. De forma similar, the_content imprime el contenido (en cualquier caso, esperaría que el contenido muestre HTML).

    
respondido por el Stephen Harris 18.05.2012 - 18:37
5

Sí y no, depende de si desea que html en esas funciones se genere o no. Si escapa the_content() , por ejemplo, y contiene una etiqueta <div> , esa etiqueta se enviará a la página como &lt;div&gt; en su lugar.

Por cierto, si escapa a la salida de esas funciones, querrá usar sus equivalentes "get_" (ej. get_the_content() ) ya que esas funciones hacen eco de su salida directamente.

    
respondido por el Joseph Leedy 18.05.2012 - 18:38
0

Simplemente puede escribir una función como esta y conectarla a the_title filter:

function my_escape_title( $title ){
    return esc_html( $title );
}
add_filter( 'the_title', 'my_escape_title' );
    
respondido por el Vilius 04.08.2016 - 23:57

Lea otras preguntas en las etiquetas