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


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.