Wir müssen hier etwas genauer hinschauen, um eine Antwort auf Ihre Frage zu erhalten.
Also, bloginfoist ein einfacher Wrapper herum get_bloginfo.
<?php
function bloginfo( $show='' ) {
echo get_bloginfo( $show, 'display' );
}
Beachten Sie das zweite Argument display. Mal sehen, was das macht.
<?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;
}
Wenn der Filter auf displayden Ausgang von eingestellt get_bloginfoist, wird er durch einen Filter geleitet.
Anstatt so etwas wie einen Aufruf esc_htmlin einer Funktion fest zu codieren, verwendet WP ein eigenes Hook-System, um Dinge zu erledigen. Der Ort, an dem man das findet, ist wp-includes/default-filters.php. Eine schnelle Suche bloginfoin dieser Datei zeigt ...
<?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' );
}
bloginfoist im foreachArray versteckt . Wie Sie sehen können, wird die Ausgabe von mit bloginfomaskiert esc_html.
Mit anderen Worten:
<?php
bloginfo('name');
Ist gleichbedeutend damit:
<?php
echo esc_html(get_bloginfo('name'));
Oder dieses:
<?php
echo get_bloginfo('name', 'display');
Also, nein, die Ausgabe von bloginfomuss nicht maskiert werden. Auch die Ausgabe von get_bloginfosolange das zweite Argument auf gesetzt ist display.
Die Einschränkung ist jedoch, dass jeder den esc_htmlFilter entfernen kann bloginfo. Es ist also wahrscheinlich sicherer, nur der Ausgabe zu entkommen. Und wenn Sie die Ausgabe von bloginfofür etwas anderes als die HTML-Anzeige verwenden (z. B. im alt-Attribut eines Bildes), sollten Sie sie natürlich durchlaufen esc_attr.