Nous devons approfondir un peu ici pour obtenir une réponse à votre question.
Donc, bloginfo
c'est un simple wrapper get_bloginfo
.
<?php
function bloginfo( $show='' ) {
echo get_bloginfo( $show, 'display' );
}
Remarquez le deuxième argument display
. Voyons voir ce que cela fait.
<?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 le filtre est réglé sur display
la sortie de, il get_bloginfo
passe par un filtre.
Plutôt que de coder en dur quelque chose comme un appel à esc_html
une fonction, WP utilise son propre système de hook pour faire les choses. L'endroit pour trouver où cela se produit est wp-includes/default-filters.php
. Une recherche rapide bloginfo
dans ce fichier révèle ...
<?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 caché dans le foreach
tableau. Comme vous pouvez le voir, la sortie de bloginfo
s'échappe avec esc_html
.
En d'autres termes, ceci:
<?php
bloginfo('name');
Est équivalent à ceci:
<?php
echo esc_html(get_bloginfo('name'));
Ou ca:
<?php
echo get_bloginfo('name', 'display');
Donc, non, la sortie de bloginfo
n'a pas besoin d'être échappée. La sortie ne get_bloginfo
dure pas non plus tant que le deuxième argument est défini sur display
.
La mise en garde, cependant, est que n'importe qui peut retirer le esc_html
filtre bloginfo
. Il est donc plus sûr d'échapper à la sortie. Et, bien sûr, si vous utilisez la sortie de bloginfo
pour autre chose que l'affichage HTML (par exemple dans l'attribut alt d'une image), vous devez l'exécuter esc_attr
.