Kami harus melihat sedikit lebih dalam di sini untuk mendapatkan jawaban atas pertanyaan Anda.
Jadi, bloginfoadalah pembungkus sederhana get_bloginfo.
<?php
function bloginfo( $show='' ) {
echo get_bloginfo( $show, 'display' );
}
Perhatikan argumen kedua display. Mari kita lihat apa yang dilakukannya.
<?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;
}
Jika filter diatur ke displayoutput get_bloginfodijalankan melalui filter.
Daripada hardcode sesuatu seperti panggilan esc_htmldalam suatu fungsi, WP menggunakan sistem kait itu sendiri untuk melakukan sesuatu. Tempat untuk menemukan di mana itu terjadi adalah di wp-includes/default-filters.php. Pencarian cepat bloginfodi file itu mengungkapkan ...
<?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' );
}
bloginfodisembunyikan di dalam foreacharray. Seperti yang Anda lihat, output dari bloginfololos esc_html.
Dengan kata lain, ini:
<?php
bloginfo('name');
Setara dengan ini:
<?php
echo esc_html(get_bloginfo('name'));
Atau ini:
<?php
echo get_bloginfo('name', 'display');
Jadi, tidak, output dari bloginfotidak perlu diloloskan. Output juga tidak get_bloginfoselama argumen kedua diatur display.
Namun, peringatannya adalah siapa pun dapat menghapus esc_htmlfilter bloginfo. Jadi sepertinya lebih aman hanya untuk menghindari output. Dan, tentu saja, jika Anda menggunakan output bloginfountuk apa pun selain tampilan HTML (mis. Pada atribut alt gambar), Anda harus menjalankannya esc_attr.