Temos que olhar um pouco mais aqui para obter uma resposta para sua pergunta.
Então, bloginfo
é um invólucro simples get_bloginfo
.
<?php
function bloginfo( $show='' ) {
echo get_bloginfo( $show, 'display' );
}
Observe o segundo argumento display
. Vamos ver o que isso faz.
<?php
function get_bloginfo( $show = '', $filter = 'raw' ) {
// snip snip, $output is fetched somewhere in here
if ( 'display' == $filter ) {
if ( $url )
$output = apply_filters('bloginfo_url', $output, $show);
else
$output = apply_filters('bloginfo', $output, $show);
}
return $output;
}
Se o filtro estiver definido como display
a saída de, get_bloginfo
será executado um filtro.
Em vez de codificar algo como uma chamada esc_html
em uma função, o WP usa seu próprio sistema de gancho para fazer as coisas. O lugar para descobrir onde é que isso acontece wp-includes/default-filters.php
. Uma pesquisa rápida bloginfo
nesse arquivo revela ...
<?php
// Format strings for display.
foreach ( array( 'comment_author', 'term_name', 'link_name', 'link_description', 'link_notes', 'bloginfo', 'wp_title', 'widget_title' ) as $filter ) {
add_filter( $filter, 'wptexturize' );
add_filter( $filter, 'convert_chars' );
add_filter( $filter, 'esc_html' );
}
bloginfo
está oculto na foreach
matriz. Como você pode ver, a saída de bloginfo
é escapada esc_html
.
Em outras palavras, isso:
<?php
bloginfo('name');
É equivalente a isso:
<?php
echo esc_html(get_bloginfo('name'));
Ou isto:
<?php
echo get_bloginfo('name', 'display');
Portanto, não, a saída de bloginfo
não precisa ser escapada. Nem a saída get_bloginfo
enquanto o segundo argumento estiver definido como display
.
A ressalva, no entanto, é que qualquer pessoa pode remover o esc_html
filtro bloginfo
. Portanto, é mais seguro escapar da saída. E, é claro, se você estiver usando a saída de bloginfo
algo diferente de exibição em HTML (por exemplo, no atributo alt de uma imagem), você deve executá-la esc_attr
.
esc_html
existe desde 2.8, por isso tem de ser viciado embloginfo
github.com/WordPress/WordPress/blob/2.8-branch/wp-includes/...