ওয়ার্ডপ্রেসের ডিফল্ট ইমোজি লোডিং বন্ধ করবেন যেভাবে

ওয়েব পারফর্মেন্সের ক্ষেত্রে অনেকগুলি ইস্যু আছে যেগুলি আপনি ফিক্স করতে পারেন আপনার ওয়েবসাইটকে দ্রুত লোড করানোর জন্য। আমরা সবাই-ই চাই যে আমাদের ওয়েবসাইটের স্পিড আরেকটু বাড়ুক। মানুষজন যাতে দ্রুত ওয়েবসাইটে ঢুকতে এবং ব্রাউজ করতে পারে। আর ওয়েবসাইট স্পীডি করতে গেলে আমাদেরকে কিলোবাইট তো পরের কথা, প্রতিটা বাইটের উপরও নজর দিতে হবে। বাইট-বাইট করে সাইজ কমাতে কমাতে একসময় দেখা যাবে ওয়েবসাইটের সাইজ বেশ কমে এসেছে এবং সেটা অনেক ফাস্ট লোড হচ্ছে।

ইমোজি আইকনতো এর মধ্যে একটি সহজ অপটিমাইজেশন হচ্ছে ইমোজি ফাইলগুলির লোডিং বন্ধ করে দেয়া। ইমোজি হচ্ছে ছোট ছোট কিছু কার্টুন আইকন যা আমরা আমাদের কথার টোন, এক্সপ্রেশন, মনোভাব ইত্যাদি বুঝাতে ব্যবহার করে থাকি। এগুলো আসলে বেশ মজার, আমরা অনেকেই ফেসবুকে এসব ইমোজি ব্যবহার করে থাকি। কিন্তু আপনি মনে করে দেখুন তো, আপনার ওয়েবসাইটে কি এগুলো আসলেই দরকার? আপনি যদি ওয়েবসাইটকে সিরিয়াসলি নিয়ে থাকেন তাহলে নিশ্চয়ই আপনার কাছে ১০ কিলোবাইটের বাড়তি লোডিং অপ্রয়োজনীয় মনে হবে।

ওয়ার্ডপ্রেসের ৪.২ ভার্সনথেকেই ইমোজি এড করে দেয়া হয়েছে পুরাতন ব্রাউজারে ইমোজি সাপোর্ট দেয়ার জন্য। সবচেয়ে বড় সমস্যা হচ্ছে এটা একটা বাড়তি HTTP রিকুয়েস্ট তৈরি করে আপনার ওয়েবসাইট যখন লোড হয় তখন। আপনার ওয়েবসাইটে ইমোজি প্রয়োজন না হলেও এটা লোড হবার সময় wp-emoji-release.min.js ফাইলটি লোড হয়। আরও বড় সমস্যা হচ্ছে এটা আপনার ওয়েবসাইটের প্রত্যেকটা পেইজেই লোড হয়। আপনি নিশ্চয়ই দেখেছেন GT Metrix এ একটা কমন সমস্যা দেখায় যে Make Fewer HTTP রিকুয়েস্ট। আপনি চাইলে মাত্র চার লাইনের একটুখানি কোড এড করেই একটি HTTP রিকুয়েস্ট কমিয়ে ফেলতে পারেন।
নিচের কোডটি আপনার ওয়ার্ডপ্রেস ওয়েবসাইটের functions.php ফাইলে এড করে দিন। ব্যস, এখন থেকে ইমোজি স্ক্রিপ্ট এবং এর সিএসএস গুলি আর লোড হবে না।

// Remove WP Emojis
remove_action(‘wp_head’, ‘print_emoji_detection_script’, 7);
remove_action(‘wp_print_styles’, ‘print_emoji_styles’);
remove_action( ‘admin_print_scripts’, ‘print_emoji_detection_script’ );
remove_action( ‘admin_print_styles’, ‘print_emoji_styles’ );

উপরের কোডেই কাজ হয়ে যাবে, অথবা আরেকটু ডিটেইল কোড ব্যবহার করতে চাইলে এই কোডগুলি এড করে দিতে পারেন।

/** * Disable the emoji’s */
function disable_emojis() {
remove_action( ‘wp_head’, ‘print_emoji_detection_script’, 7 );
remove_action( ‘admin_print_scripts’, ‘print_emoji_detection_script’ );
remove_action( ‘wp_print_styles’, ‘print_emoji_styles’ );
remove_action( ‘admin_print_styles’, ‘print_emoji_styles’ );
remove_filter( ‘the_content_feed’, ‘wp_staticize_emoji’ );
remove_filter( ‘comment_text_rss’, ‘wp_staticize_emoji’ );
remove_filter( ‘wp_mail’, ‘wp_staticize_emoji_for_email’ );
add_filter( ‘tiny_mce_plugins’, ‘disable_emojis_tinymce’ );
add_filter( ‘wp_resource_hints’, ‘disable_emojis_remove_dns_prefetch’, 10, 2 );
}
add_action( ‘init’, ‘disable_emojis’ );
/**
* Filter function used to remove the tinymce emoji plugin.*
* @param array $plugins
* @return array Difference betwen the two arrays
*/
function disable_emojis_tinymce( $plugins ) {
if ( is_array( $plugins ) ) {
return array_diff( $plugins, array( ‘wpemoji’ ) );
} else {
return array(); } }
/**
* Remove emoji CDN hostname from DNS prefetching hints. *
* @param array $urls URLs to print for resource hints.
* @param string $relation_type The relation type the URLs are printed for.
* @return array Difference between the two arrays.
*/
function disable_emojis_remove_dns_prefetch( $urls, $relation_type ) {
if ( ‘dns-prefetch’ == $relation_type ) {
/** This filter is documented in wp-includes/formatting.php */
$emoji_svg_url = apply_filters( ’emoji_svg_url’, ‘https://s.w.org/images/core/emoji/2.3/svg/’ );
$urls = array_diff( $urls, array( $emoji_svg_url ) );} return $urls; }


অথবা আপনি যদি এটা ঝামেলা মনে করেন তাহলে প্লাগিন দিয়েও এই সমস্যার সমাধান করতে পারেন। সেজন্য Disable Emojis প্লাগিনটি ব্যবহার করতে পারেন।

লেখক সম্পর্কে

অপু জামান

পিএইচপি ডেভেলপার এবং প্রযুক্তি প্রেমী। ফাংশন নিয়ে লজিক লিখতে ভাল লাগে, আর ভাল লাগে ঘুরতে। টেকয়েস'এর পাশাপাশি তাই টেকওয়ান্স'এও ঘুরি।

মন্তব্য করুন

সাম্প্রতিক মন্তব্যগুলি

Pin It on Pinterest

Shares
Share This