我将以下代码添加到functions.php
:
if(!function_exists(\'bi_frontend_scripts\')) {
function bi_frontend_scripts() {
wp_enqueue_script(\'jquery\');
// I originally wanted to do:
wp_enqueue_script(\'jQuery.bxSlider\', get_bloginfo(\'template_url\').\'/scripts/jquery.bxslider/jquery.bxslider.min.js\', array(\'jquery\'));
}
}
add_action(\'wp_enqueue_scripts\', \'bi_frontend_scripts\');
但显然,这两个脚本都没有排队。我不知道我的问题是什么,所以我添加了这个脚本以了解钩子是否被调用:
function aal_handler() {
static $list = array();
// exclude certain actions:
$exclude = array(\'gettext\', \'gettext_with_context\');
$action = current_filter();
if(!in_array($action, $exclude)) {
$list[] = $action;
}
// shutdown is the last action
if (\'shutdown\' == $action) {
print \'<pre>\' . implode( "\\n", $list ) . \'</pre>\';
}
}
add_action(\'all\', \'aal_handler\', 99999, 99);
在列表中
wp_enqueue_scripts
不显示。那为什么不叫钩子?!
最合适的回答,由SO网友:s_ha_dum 整理而成
您的代码是正确的,但如果函数名已经被使用,我不会添加回调。如果其他人使用了该名称,您不知道您可能会添加什么。
if(!function_exists(\'bi_frontend_scripts\')) {
function bi_frontend_scripts() {
wp_enqueue_script(\'jquery\');
// I originally wanted to do:
wp_enqueue_script(\'jQuery.bxSlider\', get_bloginfo(\'template_url\').\'/scripts/jquery.bxslider/jquery.bxslider.min.js\', array(\'jquery\'));
}
add_action(\'wp_enqueue_scripts\', \'bi_frontend_scripts\');
}
我还测试了你的“钩子转储”功能--
aal_handler()
-- 这是可行的。
wp_enqueue_scripts
是输出的一部分。
我不得不得出结论,这个主题有问题。wp_enqueue_scripts
is hooked to wp_head
, 在wp_head()
function. 最明显的可能性是您的主题没有使用wp_head()
正确,或者根本不正确。另一种遥远的可能性是,有东西删除了您的回调,例如:
remove_all_filters(\'wp_enqueue_scripts\');
SO网友:WpMania.Net
我再次为您提供了大量信息,以便您了解wp_enqueue_scripts
.
您需要知道wp_enqueue_scripts
. 参见以下挂钩顺序:
加载的多插件分类法/li>
initwidgets\\u initregister\\u sidebarwp\\u register\\u sidebar\\u widgetwp\\u default\\u scriptswp\\u default\\u stypesadmin\\u initadd\\u admin\\u bar\\u菜单wp\\u加载解析请求
发送\\u头解析查询pre\\u get\\u posts
posts\\u selectionwp模板重定向get\\u headerwp\\u headwp_enqueue_scriptswp\\u print\\u样式。。。等等
您可以将其添加到init
钩子,这样做将被称为比下面的列表更高的优先级。
如果没有加载文件,可以使用更高优先级的挂钩。
如果您的wp_enqueue_script
没有被调用,您可以使用这个简单的技巧让它为您的主题或插件工作。
<?php
if(!function_exists(\'bi_frontend_scripts\')) {
function bi_frontend_scripts() {
wp_enqueue_script(\'jquery\');
// I originally wanted to do:
wp_enqueue_script(\'jQuery.bxSlider\', get_bloginfo(\'template_url\').\'/scripts/jquery.bxslider/jquery.bxslider.min.js\', array(\'jquery\'));
}
add_action( \'init\', \'bi_frontend_scripts\' );
}
?>