Tenemos que mirar un poco más profundo aquí para obtener una respuesta a su pregunta.
Entonces, bloginfo
es un simple envoltorio alrededor get_bloginfo
.
<?php
function bloginfo( $show='' ) {
echo get_bloginfo( $show, 'display' );
}
Observe el segundo argumento display
. Veamos qué 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
una función, WP usa su propio sistema de enlace para hacer cosas. El lugar para encontrar eso donde sucede es en wp-includes/default-filters.php
. Una búsqueda rápida 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 foreach
matriz. 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');
Por lo tanto, no, la salida de bloginfo
no necesita escapar. Tampoco la salida de get_bloginfo
mientras el segundo argumento esté establecido en display
.
Sin embargo, la advertencia es que cualquiera puede quitar el esc_html
filtro bloginfo
. Por lo tanto, es más seguro escapar de la salida. Y, por supuesto, si está utilizando la salida de bloginfo
algo que no sea la visualización HTML (por ejemplo, en el atributo alt de una imagen), debe ejecutarlo esc_attr
.
esc_html
ha existido desde 2.8, por lo que se ha conectado abloginfo
github.com/WordPress/WordPress/blob/2.8-branch/wp-includes/…