Dobbiamo cercare un po 'più a fondo qui per ottenere una risposta alla tua domanda.
Quindi, bloginfoè un semplice wrapper in giro get_bloginfo.
<?php
function bloginfo( $show='' ) {
echo get_bloginfo( $show, 'display' );
}
Nota il secondo argomento display. Vediamo cosa fa.
<?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 il filtro è impostato displaysull'uscita di get_bloginfoviene eseguito attraverso un filtro.
Piuttosto che codificare qualcosa come una chiamata esc_htmlin una funzione, WP usa il proprio sistema hook per fare le cose. Il posto dove trovare quello che succede è dentro wp-includes/default-filters.php. Una rapida ricerca bloginfoin quel file rivela ...
<?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è nascosto nella foreachmatrice. Come puoi vedere, l'output di bloginfoviene evaso con esc_html.
In altre parole, questo:
<?php
bloginfo('name');
È equivalente a questo:
<?php
echo esc_html(get_bloginfo('name'));
O questo:
<?php
echo get_bloginfo('name', 'display');
Quindi, no, bloginfonon è necessario sfuggire all'output di . Né l'output di get_bloginfofinché il secondo argomento è impostato su display.
L'avvertimento, tuttavia, è che chiunque può rimuovere il esc_htmlfiltro bloginfo. Quindi è probabilmente più sicuro sfuggire all'output. E, naturalmente, se stai utilizzando l'output di bloginfoqualcosa di diverso dalla visualizzazione HTML (ad es. Nell'attributo alt di un'immagine), dovresti eseguirlo esc_attr.