প্লাগইন জাভাস্ক্রিপ্টগুলিতে কীভাবে ডিফার = "ডিফার" ট্যাগ যুক্ত করবেন?


28

আমি প্লাগইন জাভাস্ক্রিপ্টগুলিতে ডিফার ট্যাগ যুক্ত করতে পারিনি। গুগল বিকাশকারী পেজস্পিড পরীক্ষা আমাকে যোগাযোগের ফর্ম 7 জাভাস্ক্রিপ্টগুলিতে ডিফার ট্যাগ যুক্ত করার পরামর্শ দেয় ।

যোগাযোগ ফর্ম 7 এর মধ্যে শিরোনামটিতে জাভাস্ক্রিপ্ট অন্তর্ভুক্ত রয়েছে।

add_action( 'wp_enqueue_scripts', 'wpcf7_enqueue_scripts' );

function wpcf7_enqueue_scripts() {
    // jquery.form.js originally bundled with WordPress is out of date and deprecated
    // so we need to deregister it and re-register the latest one
    wp_deregister_script( 'jquery-form' );
    wp_register_script( 'jquery-form', wpcf7_plugin_url( 'jquery.form.js' ),
        array( 'jquery' ), '2.52', true );

    $in_footer = true;
    if ( 'header' === WPCF7_LOAD_JS )
        $in_footer = false;

    wp_enqueue_script( 'contact-form-7', wpcf7_plugin_url( 'scripts.js' ),
        array( 'jquery', 'jquery-form' ), WPCF7_VERSION, $in_footer );

    do_action( 'wpcf7_enqueue_scripts' );
}

এখন উপরের কোডটিতে কীভাবে ডিফার = "ডিফার" ট্যাগ যুক্ত করবেন?


2
প্রাসঙ্গিক টিকিট: core.trac.wordpress.org/ticket/12009
— স্ক্রিবু

1
ভাল প্রশ্ন @ বিরুথাগিরি।
— রামকুমার এম

উত্তর:


56

ওয়ার্ডপ্রেস 4.1 এর হিসাবে সেখানে একটি ফিল্টার হল: script_loader_tag। সঠিক স্ক্রিপ্টটি খুঁজতে আপনি এটি ব্যবহার করতে পারেন:

add_filter( 'script_loader_tag', function ( $tag, $handle ) {

    if ( 'contact-form-7' !== $handle )
        return $tag;

    return str_replace( ' src', ' defer="defer" src', $tag );
}, 10, 2 );

পুরানো উত্তর

কোনও ডেডিকেটেড ফিল্টার উপলব্ধ নেই ... কমপক্ষে আমি এটি দেখতে পাচ্ছি না। কিন্তু…

  • wp_print_scripts() কল WP_Scripts->do_items()
  • যা কল WP_Scripts->do_item()
  • যা ব্যবহার করে esc_url()
  • যা আছে একটি ফিল্টার অফার: 'clean_url'।

এবং আমরা এখানে যাই:

function add_defer_to_cf7( $url )
{
    if ( FALSE === strpos( $url, 'contact-form-7' )
      or FALSE === strpos( $url, '.js' )
    )
    { // not our file
        return $url;
    }
    // Must be a ', not "!
    return "$url' defer='defer";
}
add_filter( 'clean_url', 'add_defer_to_cf7', 11, 1 );

ক্যাভেট: পরীক্ষিত নয়, কেবল একটি ধারণা। :)

হালনাগাদ

আমি এই কোড সহ একটি প্লাগইন লিখেছি এবং পরীক্ষা করেছি । Https://gist.github.com/1584783 দেখুন


এটি প্রয়োজনীয় তথ্যগুলিতে ডেটা-মাইনের সাথে ব্যবহারের জন্যও উপযুক্ত
— নিকোলা পেলুচেটে

এটি একটি দুর্দান্ত হ্যাক এবং খুব সাধারণ। আমি মনে করি এটি প্রয়োজনে চরসেট = 'utf-8' যুক্ত করার জন্যও ভাল লাগবে!
— ওয়েবওয়ার

দুর্দান্ত, তবে কেন:
— হ'ল হ'ল

@ হেনরিয়াইট ওয়ার্ডপ্রেস 'ফেরত স্ট্রিংয়ের উভয় পাশে যুক্ত করুন, এর "ফলে অবৈধ এইচটিএমএল হবে।
— ফুসিয়া

2
সম্ভবত অন্য একটি স্ক্রিপ্টগুলির সাথে কাজ করার জন্য যদি কেউ এটি চালু করতে চান তবে এটি if( ! is_admin() ){}এফএফের মতো জনপ্রিয় প্লাগইনগুলি আপনাকে মাথাব্যথার কারণ হতে পারে তা কেবল ফন্ট-এন্ডে ব্যবহার করার জন্য বৈধতা নিশ্চিত করার বিষয়টি নিশ্চিত হওয়া উচিত good
— ক্রিসোকা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.