2017-10-10 106 views
1

我很新的WordPress,并希望删除一些不必要的js/css文件加载在页面的HTML头内。WordPress模板“X”:更改html内<head>

在可湿性粉剂内容/主题/ X /框架/视图/头/ base.php我发现下面的代码:

<head> 
    <?php wp_head(); ?> 
</head> 

这显然不利于我。我不知道接下来是什么WordPress的“wp_head()”函数。是不是有一些简单的文件,我可以在某处为“头部”编写/编辑简单的HTML?

回答

2

wp_head()是一个触发wp_head动作钩子的函数。 Wordpress建立在动作钩子和过滤器之上,这意味着插件和主题不仅可以通过这些钩子将设置添加到您的设置中,而且还可以删除事物。这大部分是以编程方式完成(使用PHP),而不是仅仅存在一个html模板,尽管情况并非总是如此......但在您的情况下就是这种情况。

大部分脚本和样式都通过wp_enqueue_scripts动作钩入队。你会想在这里执行你的脚本删除。

问题是,在删除它之前,您必须知道脚本注册的名称。例如,jQuery被注册为'jquery'。很简单,对吧?但是,并不是所有的脚本都会如此简单,您必须浏览代码才能找到这些脚本的注册句柄(名称)。样式更容易一些,因为当您在浏览器中检查页面时,样式将具有设置为'example-style-css'的id属性。 Wordpress将'-css'附加到已注册和排队的样式中,所以样式的名称实际上是'样式'。

在主题functions.php,你可以出队脚本和样式,以便它们不会被包含在页面上像这样:

function stack_46669800_dequeue(){ 
    wp_dequeue_script('the-script-you-want-to-remove'); 
    wp_dequeue_style('the-style-you-want-to-remove'); 
} 
add_action('wp_enqueue_scripts','stack_46669800_dequeue',100); 

(在add_action功能注意这里100 ...这是优先级,或者是所有添加动作的顺序,大多数是10,所以我把这里的优先级改为100,这样会比任何排队不想要的脚本都要晚。一些还没有入队的东西。)

+0

好吧,但是不是最好防止他们排在第一位,而不是去掉第他们从队列中? 我的下一个问题是,有一些我想编辑/删除的内联css/js脚本。 – snmueller89

+1

@ snmueller89 - 如果您遵循WordPress使用儿童主题(您应该是!)的建议,那么您可以在您的儿童主题内出列脚本/样式,而不是编辑/自定义父主题(您不应该在做!)。 – Matthew

+0

@ snmueller89“......防止它们会更好......”不,因为那不是Wordpress的工作原理。有许多脚本按照默认/ Wordpress核心排队,然后插件可以/将排队他们自己的脚本。所有这些都在你的主题加载之前发生。 – Spartacus