Tenemos que profundizar un poco aquí para obtener una respuesta a su pregunta.
Entonces, bloginfo
es un envoltorio simple alrededor de get_bloginfo
.
<?php
function bloginfo( $show='' ) {
echo get_bloginfo( $show, 'display' );
}
Note el segundo argumento display
. Veamos que hace eso.
<?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;
}
Si el filtro se establece en display
, la salida de get_bloginfo
se ejecuta a través de un filtro.
En lugar de codificar algo como una llamada a esc_html
en una función, WP usa su propio sistema de gancho para hacer cosas. El lugar para encontrar donde sucede eso es en wp-includes/default-filters.php
. Una búsqueda rápida de bloginfo
en ese archivo 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 en la matriz foreach
. Como puede ver, la salida de bloginfo
se escapa con esc_html
.
En otras palabras, esto:
<?php
bloginfo('name');
Es equivalente a esto:
<?php
echo esc_html(get_bloginfo('name'));
O esto:
<?php
echo get_bloginfo('name', 'display');
Entonces, no, la salida de bloginfo
no necesita ser escapada. Tampoco la salida de get_bloginfo
mientras el segundo argumento esté establecido en display
.
La advertencia, sin embargo, es que cualquiera puede eliminar el filtro esc_html
de bloginfo
. Así que es probable que sea más seguro escapar de la salida. Y, por supuesto, si está utilizando la salida de bloginfo
para otra cosa que no sea la visualización HTML (por ejemplo, en el atributo alt de una imagen), debe ejecutarlo a través de esc_attr
.