আপনার প্রশ্নের উত্তর পেতে আমাদের এখানে আরও গভীরভাবে দেখতে হবে।
সুতরাং, 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' );
}
bloginfo
foreach
অ্যারে লুকানো আছে । আপনি দেখতে পাচ্ছেন, আউটপুটটি 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
।