2014-11-04 34 views
0

在我的主题中,有一些category.php模板用于某些类别的档案。我修改了这个文件,但有一个效果,我需要添加一些javascript到category.php文件的头部。在这一文件中,有get_header();如何将脚本排入主题'function.php?

我打开我的主题header.php文件,看到的所有脚本文件似乎被这个函数初始化表达式:wp_head();

所以我想我得改变我的题材的functions.php将我的脚本排入档案模板的头部。

但如何做到这一点?我怎么能过滤category.php?在我的研究中,我发现了这个功能:is_category() - 但它仅适用于模板文件。我可以通过下面的wp_head();功能加入这个我的header.php到我的javascript文件添加到头:

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

你有正确的想法。您需要将脚本排入队列,但前提是您位于类别归档页面上。另外,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'); 
+0

完美!它的工作,非常感谢你!关于jQuery - 没有排队我的jQuery脚本my_script不起作用。但我认为有一种方法可以用新版本替换默认的jQuery。我会检查一下。 – user2718671 2014-11-05 09:15:13

+1

是的,你正在寻找[wp_deregister_script](http://codex.wordpress.org/Function_Reference/wp_deregister_script)< - 该链接有关于注销jquery的很好的信息。然后,你只需要“排队”你自己的jquery(并将其命名为“jquery”)。 – rnevius 2014-11-05 09:16:35

+0

很酷! Thx再次! – user2718671 2014-11-05 09:17:03

相关问题