Saya tidak bisa menambahkan tag penundaan di plugin javascripts. Tes kecepatan halaman pengembang Google menyarankan saya untuk menambahkan tag penundaan dalam formulir kontak 7 javascript.
Ini adalah bagaimana formulir kontak 7 termasuk javascript di header.
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' );
}
Sekarang bagaimana cara menambahkan tag defer = "defer" dalam kode di atas?
Jawaban:
Sebagai WordPress 4.1 ada filter:
script_loader_tag
. Anda dapat menggunakannya untuk menemukan skrip yang benar:Jawaban lama
Tidak ada filter khusus yang tersedia ... setidaknya saya tidak bisa melihatnya. Tapi ...
wp_print_scripts()
panggilanWP_Scripts->do_items()
WP_Scripts->do_item()
esc_url()
'clean_url'
.Dan ini dia:
Peringatan: tidak diuji, hanya sebuah ide. :)
Memperbarui
Saya telah menulis dan menguji plugin dengan kode ini. Lihat https://gist.github.com/1584783
sumber
'
di kedua sisi string yang dikembalikan, dan"
akan menghasilkan HTML yang tidak valid.if( ! is_admin() ){}
plugin populer seperti ACF mungkin membuat Anda sakit kepala.