我对jQuery和插件有问题,控制台错误显示jQuery没有定义。我不明白的是,只有当我将其加载到生产服务器时,它才会失败,在我的本地dev安装上,它工作得很好。
ReferenceError:未定义jQuery。
插件代码:
add_filter( \'wp_footer\', \'enqueue_footer_scripts\', 9);
add_filter( \'wp\', \'enqueue_styles\', 11);
function enqueue_footer_scripts() {
wp_register_script( \'sjs\', plugins_url(\'/js/sjs.js\', __FILE__), array(\'jquery\'));
wp_enqueue_script( \'sjs\' );
echo "<script>jQuery(document).ready(function ($) { $(\'p\').sJS();});</script>";
}
function enqueue_styles() {
wp_register_style(\'sjcss\', plugins_url(\'/css/sjs.css\', __FILE__), false, \'2.1\');
wp_enqueue_style(\'sjcss\');
}
最合适的回答,由SO网友:Otto 整理而成
由于基本的排序问题,您的代码无法工作。
您正在连接到wp\\u页脚。然后注册一个脚本并将其排入队列。最后,返回一些代码。
问题是,将脚本排队的行为不会立即引起脚本代码的回音。排队只是按照它所说的做,它将脚本设置为稍后添加到页面输出中。因此,您对这里的脚本代码的回应为时尚早。
具体而言,页脚的排队脚本发生在wp\\u print\\u footer\\u scripts调用中,该调用连接到优先级为20的wp\\u footer操作。因此,您需要在那之前排队,但在那之后打印自定义脚本代码。
因此,创建一个新函数。将其挂接到wp\\u print\\u footer\\u scripts操作。然后将回显代码移到该位置,但将排队代码留在原来的位置。
SO网友:helgatheviking
直接从法典this is how to load a script:
function my_scripts_method() {
wp_enqueue_script( \'social-highlighter-js\', plugins_url(\'/js/social-highlighter.js\', __FILE__), array(\'jquery\'));
}
add_action( \'wp_enqueue_scripts\', \'my_scripts_method\' );
然后在页脚中打印自定义初始化脚本:
add_filter( \'wp_print_footer_scripts\', \'my_wp_print_footer_scripts\' );
function my_wp_print_footer_scripts() {
echo "<script>jQuery(document).ready(function ($) { $(\'p\').socialHighlighterShare();});</script>";
}