Devo escapar de funções do wordpress como the_title, the_excerpt, the_content

12

Eu olhei o código mas não consegui ver nenhum escape em funções como the_title the_content the_excerpt etc. Eu posso não estar lendo direito. Preciso escapar dessas funções no desenvolvimento de temas como:

esc_html ( the_title () )

Editar: como apontado nas respostas abaixo, o código acima está errado, independentemente - o código deve ter lido esc_html ( get_the_title () )

    
por byronyasgur 18.05.2012 / 18:10

3 respostas

14

O escape depende inteiramente do contexto em que você está usando as funções. O que é seguro para exibir dentro de tags <h1> , não é necessariamente seguro exibir para o atributo value de um campo de entrada, e mesmo isso não seria necessariamente seguro como um valor de atributo href ....

Resumindo - faça você mesmo a higienização conforme a saída. Embora no caso de the_title () ou get_the_title () , esc_html não seja necessário, uma vez que o WordPress aplica as seguintes funções:

Observação: the_title imprime o título - por isso, esc_html ( the_title () ) não funcionará. Da mesma forma, the_content imprime o conteúdo (em qualquer caso, você esperaria que o conteúdo exibisse HTML).

    
por Stephen Harris 18.05.2012 / 18:37
5

Sim e não - depende se você deseja que o html nessas funções seja gerado ou não. Se você escapar de the_content() , por exemplo, e ele contiver uma tag <div> , essa tag será realmente enviada para a página como &lt;div&gt; .

A propósito, se você escapar da saída dessas funções, você vai querer usar seus equivalentes "get_" (ex. get_the_content() ), já que essas funções ecoam suas saídas diretamente.

    
por Joseph Leedy 18.05.2012 / 18:38
0

Você pode simplesmente escrever uma função como essa e conectá-la ao filtro the_title :

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