আপনার প্রশ্নের উত্তর পেতে আমাদের এখানে আরও গভীরভাবে দেখতে হবে।
সুতরাং, bloginfoচারপাশে একটি সাধারণ মোড়ক get_bloginfo।
<?php
function bloginfo( $show='' ) {
echo get_bloginfo( $show, 'display' );
}
দ্বিতীয় যুক্তি লক্ষ্য করুন display। দেখা যাক এটি কী করে।
<?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;
}
যদি ফিল্টারটি সেট করা থাকে displayতবে get_bloginfoএকটি ফিল্টার মাধ্যমে চালিত হয়।
esc_htmlকোনও ফাংশনে কল করার মতো হার্ডকোডের পরিবর্তে , ডাব্লুপি জিনিসগুলি করতে নিজের হুক সিস্টেম ব্যবহার করে। যেখানে ঘটেছিল তা খুঁজে পাওয়ার জায়গাটি wp-includes/default-filters.php। bloginfoএই ফাইলটিতে একটি দ্রুত অনুসন্ধান প্রকাশ করে ...
<?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' );
}
bloginfoforeachঅ্যারে লুকানো আছে । আপনি দেখতে পাচ্ছেন, আউটপুটটি bloginfoএড়িয়ে যায় esc_html।
অন্য কথায়, এটি:
<?php
bloginfo('name');
এর সমতুল্য:
<?php
echo esc_html(get_bloginfo('name'));
অথবা এটা:
<?php
echo get_bloginfo('name', 'display');
সুতরাং, না, আউটপুট bloginfoএড়ানো প্রয়োজন হয় না। আমরাও আউটপুট করে get_bloginfoযতদিন দ্বিতীয় যুক্তি সেট করা হয় display।
সতর্কবাণীটি হ'ল যে কেউ esc_htmlফিল্টারটি সরাতে পারে bloginfo। সুতরাং আউটপুট এড়ানোর জন্য এটি সম্ভবত নিরাপদ। এবং অবশ্যই, আপনি যদি bloginfoএইচটিএমএল প্রদর্শন ব্যতীত অন্য কোনও জন্য আউটপুট ব্যবহার করছেন (যেমন, কোনও চিত্রের Alt বৈশিষ্ট্যে), আপনার এটি চালানো উচিত esc_attr।