javascript - 如何从 WordPress 中的子主题运行外部 js 文件

标签 javascript php wordpress wordpress-theming

我正在使用 WordPress,并且我的子主题根目录中的外部文件中有一些自定义 js。我希望将此 js 文件的引用写入 html 文档的最末尾,就在结束 body 标记之前。我首先尝试将引用硬编码到 footer.php 中。我验证了 html 源中对外部 js 文件的引用是正确的,但 javascript 没有执行任何操作,并且在 firebug 中也没有抛出任何错误。外部文件仅包含:

jQuery(document).ready(function(){
    alert('hello')
});

所以在谷歌搜索这个问题一段时间后,我发现我需要使用

wp_register_script

wp_enqueue_script

我找到了文档 herehere但我对php不是很熟悉...

目前,我添加了:

add_action('wp_enqueue_scripts', 'load_javascript_files');
function load_javascript_files() {
    wp_register_script('scripts', get_template_directory_uri() . 'wp-content/themes/maya_child/scripts.js', array('jquery'), true );
    wp_enqueue_script('scripts');
}

到我的子主题的functions.php 文件。结果是对我的自定义脚本文件的引用根本没有在源代码中打印出来

我可能错过了一个步骤,还是我搞砸了 php?我需要在 header.php 中添加一些内容吗?或页脚.php?

最佳答案

这可能是导致问题的 JavaScript 路径。 get_template_directory_uri()返回主题的路径而不是站点的路径。另外,当您使用子主题时,此函数仍然返回父主题的 uri - 因此这不是最佳选择。

尝试get_stylesheet_directory_uri() :

add_action('wp_enqueue_scripts', 'load_javascript_files');
function load_javascript_files() {
    wp_register_script('scripts', get_stylesheet_directory_uri() . '/scripts.js', array('jquery'), null, true );
    wp_enqueue_script('scripts');
}

请注意,这些函数都不会在 uri 上返回尾部斜杠,因此您需要在路径的其余部分之前添加它,例如。 '/scripts.js'

关于javascript - 如何从 WordPress 中的子主题运行外部 js 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28007126/

相关文章:

javascript - 在 JQuery 中使用面板的最后一个元素的名称查找其值

javascript - 如何通过单击 HTML 网页上的按钮来运行 python 脚本?

php - Drupal 8 MySQL数据库查询

php - 手机中的 post padding-top 太大

wordpress - AWS 中的 GoDaddy 域与 Wordpress 应用程序问题的 SSL

javascript - 我如何使用 OS.File.open?

php - 模式匹配我哪里错了?

php - 通过 php 页面中的 url 从 javascript 发送数组但是

php - 查询Wordpress中所有页面包括子页面的子页面

javascript - 使用 Javascript 客户端进行 REST 基本身份验证的安全缺陷是什么(如果有)?