无法在 WordPress 自定义主题中对脚本或样式进行排队

Can't enqueue scripts or styles in WordPress custom theme

提问人:Mike Quade 提问时间:11/17/2023 更新时间:11/17/2023 访问量:27

问:

我正在从头开始创建一个 WordPress 主题(无子主题),我无法在 functions.php 文件中将任何样式或 js 排队。我以前已经做过几次了,这从来都不是问题。现在我在这里坐了几个小时,我研究的一切都告诉我我的代码是正确的。但它仍然没有效果。

我什至从我之前创建的主题中打开了一个旧的函数.php文件。代码是相同的。这是我的函数.php文件。如果我在开头放置一个回声,则会打印出回声,因此肯定调用了此文件,并且我没有缓存问题。由于它是全新安装,因此尚未安装缓存插件。

有谁知道它可能是什么?

多谢。

<?php

/* begin register style sheets */

function bh24_registerThemeStyles() {
    wp_enqueue_style('bootstrap_css', get_stylesheet_uri() . '/css/bootstrap.min.css');
    wp_enqueue_style('style_css', get_template_directory_uri() . '/style.css', array('bootstrap_css'));
}

add_action('wp_enqueue_scripts', 'bh24_registerThemeStyles');

/* end register style sheets */

/* begin register javascript */

function bh24_registerThemeJS() {
  wp_enqueue_script('bootstrap_js', get_template_directory_uri() . '/js/bootstrap.bundle.min.js', array('jquery'), '', true);
  wp_enqueue_script('bh24_js', get_template_directory_uri() . '/js/app.js', array('bootstrap_js'), '', true);
}

add_action('wp_enqueue_scripts', 'bh24_registerThemeJS');

/* end register javascript */

?>
php wordpress wordpress主题

评论

0赞 TSCAmerica.com 11/17/2023
您是否检查了您在 get_template_directory_uri() 中使用的文件路径是否正确?此外,请检查每个脚本的依赖项是否正确。如果 jquery 未在bootstrap_js之前排队,则可能会导致问题。
0赞 Mike Quade 11/17/2023
我确实回应了 get_template_directory_uri() 以确保它是正确的。我还取消了对 css 部分的注释,并专注于首先使 js 部分工作。我还尝试在没有任何依赖项的情况下只加载应用程序.js,但仍然没有效果。
0赞 Chris Haas 11/17/2023
get_stylesheet_uri()将 URL 返回到 ,因此连接到它没有意义,您肯定想要无处不在。style.css'/css/bootstrap.min.css'get_template_directory_uri()
1赞 TSCAmerica.com 11/17/2023
验证 wp_head() 和 wp_footer() 函数是否分别存在于页眉.php和页脚.php文件中。确保 CSS 和 JS 文件的文件权限允许 WordPress 读取它们。将 wp_enqueue_style() 和 wp_enqueue_script() 与硬编码的 URL 一起使用到样式表和脚本中,以检查它们在未与 get_stylesheet_uri() 或 get_template_directory_uri() 连接时是否有效
1赞 Chris Haas 11/17/2023
MikeQuade,我很高兴你解决了你的问题。如果您认为这个问题和您的解决方案对未来的读者有所帮助,您或@user580950可以发布答案吗?如果你觉得答案是没有必要的,一般的指导通常是关闭问题本身,因为评论经常被未来的读者忽略。

答:

1赞 Mike Quade 11/17/2023 #1

问题是我首先开始处理函数 .php,我完全忽略了我需要准备好一个基本页面模板(或至少一个索引 .php)才能使其工作的事实(请参阅此处的模板层次结构)。

至少我需要在模板的 header.php 文件中调用 wp_head() 函数,在模板的 footer.php 文件中调用 wp_footer() 函数,然后将两者与 get_header() 和 get_footer() 函数一起包含在我的页面模板中,以便呈现所有脚本、样式、元标记和其他声明。

我上次在WordPress插件上工作,在那里我不需要担心模板文件,所以我有点困惑,忘记了那部分。感谢 user580950 提供解决方案。