Komunitas WP.SE selalu menyarankan penggunaan wp_register_script
dan wp_enqueue_script
untuk menambahkan skrip dalam tema / template (dan juga, wp_register_style
dan wp_enqueue_style
untuk stylesheet).
Ini adalah bagaimana saya mendaftar dan membuat skrip saya ...
Pertama, saya menambahkan sesuatu seperti ini di functions.php
add_action('init','wpse54189_register_script');
function wpse54189_register_script(){
//Register scripts
wp_enqueue_script( 'jquery' );
wp_register_script( 'aahan_bootstrap_transition', get_template_directory_uri().'/js/bootstrap-transition.js');
wp_register_script( 'aahan_bootstrap_carousel', get_template_directory_uri().'/js/bootstrap-carousel.js', array('aahan_bootstrap_transition'));
wp_register_script( 'wpse54189_ajax_comment', get_template_directory_uri().'/js/no-reload-comments.js');
}
kemudian menyebutnya dalam file templat (katakanlah, header.php) seperti ini
<?php wp_enqueue_script( 'aahan_bootstrap_carousel' ); ?>
<?php wp_enqueue_script( 'wpse54189_ajax_comment' ); ?>
Sekarang, sampai pada intinya, bagaimana cara mendaftar dan mengeluarkan "file JavaScript bersyarat" yang ada untuk dikenali oleh browser tertentu? Sebagai contoh:
<!--[if lt IE 9]>
<script src="<?php echo get_template_directory_uri(); ?>/js/html5.js" type="text/javascript"></script>
<![endif]-->
Bagaimana cara saya mendaftar dan melakukan enqueue ini dengan benar?
PS: Saya menggunakan tema Reddle , yang dikembangkan oleh pengatur tema di Automattic. Dan header.php tema langsung menggunakan kode yang baru saja disebutkan - yaitu tidak enqueued. Jadi, apakah itu berarti, itu satu-satunya cara untuk melakukannya?
Jawaban:
WP_Scripts
danWP_Styles
kelas ada di belakangwp_enqueue_script
danwp_enqueue_style
fungsi. Jika Anda melihat implementasi kelas ( skrip dan gaya ) maka Anda akan melihat bahwaWP_Scripts
kelas tidak mendukung segala jenis skrip bersyarat, tetapi! Anda bisa melihat ituWP_Styles
! Masalahnya adalah ituwp_enqueue_style
tidak memungkinkan Anda untuk mengatur kondisi.Jadi kita harus membuat retasan kecil:
Retas semacam itu menjadi mungkin, karena semua gaya terdaftar disimpan di
registered
bidangWP_Styles
kelas. Setiap gaya terdaftar adalah objek_WP_Dependency
kelas, yang memungkinkan Anda untuk menambahkan data tambahan.Sayangnya peretasan ini tidak berfungsi untuk skrip.
Informasi Tambahan:
Saya benar-benar membaca kode di Aaron Campbell's Essence Theme tadi malam dan memperhatikan bahwa dia memanggil skrip kondisional browser dan gaya.
Ada juga tiket dan tambalan tetapi belum dalam inti . Jelas skrip kondisional tidak akan berfungsi tanpa tambalan tetapi satu hal yang perlu diperhatikan adalah bahwa Anda dapat menggunakan metode add_data langsung di dalam fungsi Anda yang terlampir pada
wp_enqueue_scripts
tindakan.sumber
Unfortunately this hack is not working for scripts.
Oh ... itu menyebalkan! Sepertinya satu-satunya cara adalah cara itu. :(