在子主题中,我创建了一个函数。加载脚本和样式文件的php文件,代码如下。将库和脚本加载到除admin之外的所有页面的部分,换句话说,前两个函数,按预期工作。但是,第三个函数(用于加载特定页面的脚本)不会加载。看来我的问题与指定页面条件有关。如果将register和enqueue的其余代码放在为除管理页面以外的任何页面加载脚本的常规函数中,那么它就可以工作。我对此进行了研究,但找不到任何例子来说明我所使用的方法不起作用的原因。我已将页面id与页面名称交换,但没有任何效果。
如果您能就问题的根源提出任何建议,我们将不胜感激。
谢谢
<?php
function scripts () {
if ( !is_admin() ) {
wp_enqueue_script(\'jquery\');
wp_register_script(\'jqueryUI\', "path", array(\'jquery\')); //register custom UI library
wp_enqueue_script(\'jqueryUI\');
wp_register_script(\'popUp1\', ("path"), array(\'jquery\', \'jqueryUI\'));
wp_enqueue_script(\'popUp1\');
wp_register_script(\'popUpText\', \'path\', array(\'jquery\', \'jqueryUI\'));
wp_enqueue_script(\'popUpText\');
}
}
add_action(\'init\', \'scripts\');
//INSERT CSS files into the header
function styles () {
if ( !is_admin() ) {
wp_register_style(\'jqueryUIcss\', "path");
wp_enqueue_style(\'jqueryUIcss\');
wp_register_style(\'valuecss\', "path");
wp_enqueue_style(\'valuecss\');
}
}
add_action(\'init\', \'styles\');
//Add scripts for pop ups on "how to estimate value" page
function pagePopUps1 () {
if ( is_page(16)) {
wp_register_script(\'popUpVideo1\', "path", array(\'jquery\', \'jqueryUI\'));
wp_enqueue_script(\'popUpVideo1\');
}
}
add_action(\'init\', \'pagePopUps1\');
//End of file
?>
注意:为了简洁起见,我删除了src,但这些已经过验证,不是问题的根源。
SO网友:t31os
我建议将注册的脚本移动到init操作中,并将队列移动到连接到的回调中wp_print_scripts
.
例如:。
add_action( \'init\', \'register_those_scriptsNstyles\' );
function register_those_scriptsNstyles() {
wp_register_script( .. your script params .. );
wp_register_style( .. your style params .. );
..etc..
}
add_action( \'wp_print_scripts\', \'enqueue_those_scriptsNstyles\' );
function enqueue_those_scriptsNstyles() {
if( !is_page( \'some-page\' ) ) // If it\'s not the given page, stop here
return;
wp_enqueue_script( .. your script params .. );
wp_enqueue_style( .. your style params .. );
..etc..
}
NOTE: 尽管有钩子的名字,我很确定
wp_print_scripts
将样式排队也可以。重要的因素是确保您使用的钩子发生得足够晚,以便设置条件模板标记,即。
is_page
,
is_category
等等
如果没有,请尝试
wp_head
相反例如:。
add_action( \'wp_head\', \'your-callback\' )
EDIT: 对于样式,就像管理端一样,面向公众的端对样式有一个操作。。这是wp_print_styles
..(将样式挂入队列)。
希望这有帮助。。