我正在尝试替换标题中的“硬编码”呼叫。通过在函数中注册和排队来创建php。php。JQuery 1.8.3可以根据需要加载,但其他脚本无法加载。下面是我使用的内容:
function puckpros_load_my_scripts() {
wp_deregister_script( \'jquery\' );
wp_register_script(\'jquery\', \'http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js\');
wp_enqueue_script(\'jquery\');
wp_register_script(\'menu\', get_stylesheet_directory_uri().\'/js/menu.js\', array(\'jquery\') );
wp_enqueue_script(\'menu\');
wp_register_script(\'kwicks\', get_stylesheet_directory_uri().\'/js/jquery.kwicks.js\', array(\'jquery\') );
wp_enqueue_script(\'kwicks\');
wp_register_script(\'equalheights\', get_stylesheet_directory_uri().\'/js/jquery.equalheights.js\', array(\'jquery\') );
wp_enqueue_script(\'equalheights\');
}
add_action(\'wp_enqueue_scripts\', \'puckpros_load_my_scripts\');
这是一个子主题,所以我使用get\\u stylesheet\\u directory\\u uri(),并且文件的路径是正确的。
我相信这很简单,但我看不出我做错了什么。
谢谢
EDIT
正如下面Chip所建议的,我改变了我的功能。php消除对jquery的调用并删除register调用。我现在有:
function puckpros_load_my_scripts() {
wp_enqueue_script(\'kwicks\', get_stylesheet_directory_uri().\'/js/jquery.kwicks.js\', array(\'jquery\') );
wp_enqueue_script(\'equalheights\', get_stylesheet_directory_uri().\'/js/jquery.equalheights.js\', array(\'jquery\') );
wp_enqueue_script(\'wslaunch\', get_stylesheet_directory_uri().\'/js/wsLaunch.js\', array(\'jquery\') );
}
add_action(\'wp_enqueue_scripts\', \'puckpros_load_my_scripts\');
但我的脚本equalheights不会执行,但如果我直接在标题中加载,它会执行,如下所示:
<script type="text/javascript" src="<?php bloginfo(\'stylesheet_directory\');?>/js/jquery.kwicks.js"></script>
<script type="text/javascript" src="<?php bloginfo(\'stylesheet_directory\');?>/js/jquery.equalheights.js"></script>
<script type="text/javascript" src="<?php bloginfo(\'stylesheet_directory\');?>/js/wsLaunch.js"></script>
现在我又被难住了。我想“做得好”并排队,但我无法让它工作。
谢谢你的帮助。
SO网友:Chip Bennett
您不能(当然,您可以,但您可能会遇到像这样的依赖性问题)在wp_enqueue_scripts
那是registered
更早,并且已经用作依赖项。
最好的解决方案是摆脱自定义jquery代码,只依赖核心捆绑的jquery。(加载jQuery的非核心捆绑版本,尤其是比核心捆绑版本旧的版本,会导致很多问题。)
function puckpros_load_my_scripts() {
wp_enqueue_script(\'menu\', get_stylesheet_directory_uri().\'/js/menu.js\', array(\'jquery\') );
wp_enqueue_script(\'kwicks\', get_stylesheet_directory_uri().\'/js/jquery.kwicks.js\', array(\'jquery\') );
wp_enqueue_script(\'equalheights\', get_stylesheet_directory_uri().\'/js/jquery.equalheights.js\', array(\'jquery\') );
}
add_action(\'wp_enqueue_scripts\', \'puckpros_load_my_scripts\');
注意:为了简单起见,我删除了
wp_register_script()
通话;在这种情况下,它们是多余的。
但如果您必须取消注册核心捆绑jQuery才能注册自己的版本,请尝试在init
.
function pleasedonotderegistercorejquery() {
wp_deregister_script( \'jquery\' );
wp_register_script(\'jquery\', \'http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js\');
wp_enqueue_script(\'jquery\');
}
add_action( \'init\', \'pleasedonotderegistercorejquery\' );