我正在将样式表和Javascript文件添加到我的插件中。我使用了wp_enqueue_scripts,但是文件没有包含在body体内。
add_action( 'wp_enqueue_scripts', 'channelsScript');
function channelsScript()
{
wp_enqueue_style('Chanels',plugins_url('JS/style.css'));
wp_enqueue_style('Chanels',plugins_url('JS/style.min.css'));
wp_register_script( 'chanelsJS',plugins_url('Chanels/JS/scrip.js'));
wp_register_script( 'chanelsJS',plugins_url('Chanels/JS/jquery-1.9.1.js'));
wp_register_script( 'chanelsJS',plugins_url('Chanels/JS/jquery-1.9.1.min.js'));
wp_register_script( 'chanelsJS',plugins_url('Chanels/JS/jquery-ui.js'));
wp_enqueue_script("chanelsJS");
wp_localize_script('chanels','MyAjax', array( 'ajaxurl' => admin_url('admin-ajax.php')),array('jquery'),null,false);
}
当我将所有函数体放入admin_init hook然后style.css /style/min.css包含在body而不是.js文件中时,我不确定错误在哪里。
答案 0 :(得分:1)
您正在注册几个具有相同名称的脚本。我不确定在使用该名称重新编写多个脚本后将chanelsJS
排入队列时的行为是什么,但它绝对不是您想要的。你也正在两次注册jquery,一旦缩小,一次未被明确。尝试:
add_action( 'wp_enqueue_scripts', 'channelsScript');
function channelsScript()
{
wp_enqueue_style('Chanels',plugins_url('JS/style.min.css'));
wp_enqueue_script( 'chanelsJS',plugins_url('Chanels/JS/scrip.js'));
wp_enqueue_script( 'chanelsJS-jquery',plugins_url('Chanels/JS/jquery-1.9.1.min.js'));
wp_enqueue_script( 'chanelsJS-jquery-ui',plugins_url('Chanels/JS/jquery-ui.js'));
wp_localize_script('chanelsJS','MyAjax', array( 'ajaxurl' => admin_url('admin-ajax.php')),array('jquery'),null,false);
}
请注意,我只是立即将脚本排队,而不是先注册它们。我还更新了本地化脚本调用中的名称。
此外,WordPress内置了jQuery和jQuery UI。除非你有充分的理由使用自己的jQuery版本,否则我建议使用WordPress版本。
编辑:我刚刚注意到您将其中一个脚本的路径指定为Chanels/JS/scrip.js
。这是正确的还是Chanels/JS/script.js
?