如何使用主题的function.php将脚本排入存档头?

时间:2014-11-04 15:16:15

标签: javascript wordpress themes

在我的主题中,有一个category.php模板用于某些类别的档案。我修改了这个文件,但要产生效果,我需要在category.php文件的头部添加一些javascript。在该文件中有表达式get_header();

我打开了我的主题'header.php,看到所有脚本文件似乎都是由这个函数初始化的:wp_head();

所以我想我必须修改我的主题的functions.php,将我的脚本排入存档模板的头部。

但是怎么做?我怎么能过滤category.php?在我的研究过程中,我发现了这个函数:is_category() - 但它仅适用于模板文件。我可以将我的javascript文件添加到我的wp_head();函数下面的header.php中:

if(is_category()){    
    echo '<script type="text/javascript" src="'.get_bloginfo("wpurl").'/wp-content/themes/my_theme/js/jquery-2.1.1.min.js'.'"></script>';
    echo '<script type="text/javascript" src="'.get_bloginfo("wpurl").'/wp-content/themes/my_theme/js/my_script.js'.'"></script>';        
} 

这有效,但似乎并不是优雅/正确的方法。我多次读过,总是应该使用enqueue_script函数来添加脚本。那么什么是最佳实践以及如何做到这一点?

1 个答案:

答案 0 :(得分:1)

你有正确的想法。您希望将脚本排入队列,但前提是您已经在类别存档页面上。另外,WordPress includes jQuery by default,所以没有理由包含你自己的。请注意,这意味着您需要遵守noConflict mode wrappers

function enqueue_my_so_scripts() {
    if ( is_category() ) {
        wp_enqueue_script( 'script-name', get_template_directory_uri() . '/js/my_script.js', array('jquery'));
    }
}
add_action( 'wp_enqueue_scripts', 'enqueue_my_so_scripts' );