Saya ingin menyimpan gaya javascript dan css yang digunakan oleh widget saya di dalam file mereka sendiri (dan tidak menambahkannya ke tema).
Tapi sepertinya saya tidak bisa mendapatkan wordpress untuk menambahkannya ketika widget sebenarnya digunakan di sidebar.
Saya sudah mencoba ini:
di dalam deklarasi Kelas, saya telah menambahkan 2 fungsi
class EssentielleRubriquesPosts extends WP_Widget {
function addFrontendCss(){
wp_enqueue_style('erw-frontend-css', ESSENTIELLE_RUBRIQUE_WIDGET_PLUGIN_PATH . 'css/EssentielleRubriqueWidget-frontend.css');
}
function addFrontendJavascript(){
wp_register_script('jq-hoverintent', PLUGIN_PATH . 'js/jquery.hoverintent.js', array('jquery'), '1.0',true);
wp_enqueue_script('jq-hoverintent');
wp_enqueue_script('jq-tools', PLUGIN_PATH . 'js/jquery.tools.js', array('jquery'),'1.0',true);
wp_enqueue_script('erw-frontend-js', PLUGIN_PATH . 'js/widget-frontend.js', array('jquery', 'jq-hoverintent', 'jq-tools'),'1.0',true);
}
dan di dalam fungsi widget ():
function widget($args, $instance) {
add_action( 'wp_print_scripts', 'addFrontendJavascript' );
add_action( 'wp_print_styles', 'addFrontendCss' );
}
Tapi itu tidak melakukan apa-apa ...
widgets
wp-enqueue-script
wp-enqueue-style
Pixeline
sumber
sumber
Jawaban:
wp_print_scripts
danwp_print_styles
kait dipecat jauh sebelum fungsi widget Anda sehingga tidak berfungsi.Solusi untuk itu adalah dengan memasukkan skrip ke dalam footer menggunakan
wp_print_footer_scripts
hook, lihat jawaban Jan untuk pertanyaan serupaAtau solusi yang jauh lebih bagus lihat jawaban Sorich untuk pertanyaan serupa lainnya
sumber
Solusi terbaik adalah mendaftarkan aset Anda terlebih dahulu dan kemudian enqueue CSS dan JS di dalam
widget()
fungsi WP_Widget Anda (langsung enqueue, bukan dengan menambahkan kait baru).Saya telah menguji solusi ini dan itu berfungsi dalam versi WordPress saat ini (4.5.3) - JS dan CSS ditambahkan di footer halaman.
sumber