【问题标题】:Wordpress enqueue function is not being called from functions.php; stylesheet not added没有从functions.php调用Wordpress enqueue函数;未添加样式表
【发布时间】:2018-09-03 11:32:42
【问题描述】:

我正在构建我的第一个 wordpress 主题并尝试将外部 style.css 文件排入队列。

该文件位于主题的主目录中。

我创建了一个functions.php 文件,并在其中添加了以下代码:

<?php

function addExternalStuff(){
    wp_enqueue_style('style', get_stylesheet_uri());

}  
add_action('wp_enqueue_scripts','addExternalStuff');  

这正是教程和文档要添加的内容。

我还在 add_action() 中使用了 wp_enqueue_style。

<?php

function addExternalStuff(){
    wp_enqueue_style('style', get_stylesheet_uri());

}  
add_action('wp_enqueue_style','addExternalStuff'); 

什么都没有发生。样式表未添加到代码中。我还在函数顶部添加了一个回声,它没有被打印出来。我还在functions.php的最顶部添加了一个回声,在addExternalStuff()函数之外,它会打印出来,这意味着这是更正的functions.php文件。

【问题讨论】:

  • 你有没有打电话给addExternalStuff我猜是“没有”
  • 不,我认为这就是 add_action 所做的,因为我使用的教程都没有真正调用该函数。另外,如果我查看 WP 的默认主题的 functions.php 文件之一,没有调用,只有定义和 add_action。我错过了什么吗?这些函数是否应该从另一个文件中调用?在functions.php末尾调用仍然没有添加样式表。
  • 您是否尝试将父 style.css 文件排入您的子主题?

标签: php wordpress hook


【解决方案1】:

经过一番挖掘,我了解到我的 header.php 文件的标题中没有包含wp_head()。这就是 Wordpress 将样式表添加到页眉的方式,没有它就无法入队(也是 footer.php 中的 wp_footer)。

在 header.php 中:

<head>

     <?php wp_head() ?>

</head>

在functions.php中还使用get_template_directory_uri()而不是get_stylesheet_uri(),这样我就可以调用一个具有唯一名称的样式表,而不是默认的style.css。

  <?php

    function addExternalStuff(){
        wp_enqueue_style('style',get_template_directory_uri().'css/new_stylesheet.css');

    }  
    add_action('wp_enqueue_scripts','addExternalStuff'); 

【讨论】:

  • 感谢您抽出宝贵时间回答自己的问题,干得好!
  • 这个 6 个月大的评论救了我一整夜……我检查了我的语法 2 个小时,显然我也错过了 wp_head 的事情。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-20
相关资源
最近更新 更多