Dalam functions.php tema saya, saya memanggil add_action untuk mendapatkan kontrol di mana jquery dimuat (di footer bersama dengan skrip tema saya yang lain).
Masalah yang saya alami adalah ketika saya menggunakan add_action ('wp_enqueue_scripts'), itu hanya akan muncul jika tidak ada plugin yang dimuat. Namun, metode add_action ('init') berfungsi di semua kasus.
Saya tidak dapat mengingat alasannya, tetapi saya percaya bahwa add_action ('wp_enqueue_scripts') lebih disukai dalam kasus ini. Jika itu benar, bagaimana saya bisa membuatnya berfungsi dalam semua kasus?
Dalam functions.php
//if(!is_admin()){add_action('init', 'my_theme_init');} //THIS WORKS ALL THE TIME
//add_action('wp_enqueue_scripts', 'my_theme_init'); //THIS ONLY WORKS WHEN NO PLUGINS PRESENT
if(!is_admin())
{
require_once(TEMPLATEPATH . '/functions_public.php');
}
Di functions_public.php
function my_theme_init()
{
/* PREVENT DUPLICATE COPIES OF JQUERY FROM PLUGINS
**************************************************/
wp_deregister_script('jquery');
/* LOAD THE LOCAL WORDPRESS COPY OF JQUERY AND THEME CUSTOM SCRIPTS IN THE FOOTER
***********************************************/
wp_register_script('jquery', get_bloginfo('template_directory').'/scripts.mythemescripts.js',false,false,true);
wp_enqueue_script('jquery');
}
Metode ke-2, menggunakan add_action ('wp_enqueue_scripts') tampaknya tidak dieksekusi dalam kondisi di mana plugin hadir yang menuliskan dependensi skrip pada tema.