我创建了以下脚本,并在我的WordPress中添加了functions.php文件:
add_action('wp_enqueue_scripts', 'scripts_styles');
function scripts_styles(){
if(is_page_template('Disclosures.php')){
wp_enqueue_script('jquery', get_template_directory_uri().'/js/jquery.validate.js', array(), GOVPRESS_VERSION, false );
wp_enqueue_script('jquery', get_template_directory_uri().'/js/jquery.min.js', array(), GOVPRESS_VERSION, false );
wp_enqueue_script('bootstrap', get_template_directory_uri().'/js/bootstrap.min.js', array(), GOVPRESS_VERSION, false );
wp_enqueue_script('handlebars', get_template_directory_uri().'/js/handlebars.min.js', array(), GOVPRESS_VERSION, false );
wp_enqueue_script('addrows', get_template_directory_uri().'/js/addrows.js', array(), GOVPRESS_VERSION, false );
}
}
function wpse_enqueue_page_template_styles() {
if ( is_page_template( 'Disclosures.php' ) ) {
wp_enqueue_style( 'bootstrapthemecss', get_template_directory_uri() . '/css/bootstrap-theme.min.css', array(), GOVPRESS_VERSION, false );
wp_enqueue_style( 'bootstrapcss', get_template_directory_uri() . '/css/bootstrap.min.css', array(), GOVPRESS_VERSION, false );
wp_enqueue_style( 'maincss', get_template_directory_uri() . '/css/main.css', array(), GOVPRESS_VERSION, false );
}
}
add_action( 'wp_enqueue_scripts', 'wpse_enqueue_page_template_styles' );
但是,我的自定义模板无法识别它们。
换句话说,我使用这些脚本和样式表测试了我的页面,它们运行良好。
我能够验证表单字段并以指定的样式显示结果。
然而,他们没有验证相同的表单字段,并且页面没有被设置样式。
我错过了什么?
仅仅是一个FYI,主题的名称是govpress。
提前感谢您的帮助。
答案 0 :(得分:1)
您似乎将两个具有相同名称的脚本排入队列:jquery
。但是,jquery
已存在于WordPress中,您可能会注意到wp_enqueue_script()
说明: 不会覆盖 。这意味着每当您尝试将与以前排队的脚本同名的脚本排入队列时......没有任何反应。
如果您对WP中嵌入的jquery
的现有版本不满意,则需要取消注册并注册新的版本,并使用以下确切名称:jquery
。这个名称非常重要,因为很多WP脚本都依赖于jquery
。如果您更换它,它们将取决于您的版本而不是包含的版本。无论您的模板逻辑如何(如果您删除了默认模板逻辑),请确保将jquery
版本排入队列。
您应该将jquery
指定为依赖于jquery
的每个脚本的依赖项数组中的依赖项。
如果您的脚本和样式都没有加载,您可能需要调试脚本检查is_page_template('Disclosures.php')
是否在您正在测试它的页面中返回true。一个简单的die('this just happened...')
将用于测试目的。