当前位置: 首页 > 知识库问答 >
问题:

如何在Wordpress的functions.php中编写Javascript函数?

罗金林
2023-03-14

我正在修改一个关于开发者推荐的插件(见最新帖子),该插件建议在Wordpress的functions.php中编写一些Javascript。

现在,当我这样做的时候,我的整个WordPress变成了空白。嗯,经过一点思考..."你不能在PHP中写纯Javascript"...

所以我把它们写在一个

注意:未定义变量:第8行/home/appelhulp/domains/appelhulp.nl/public_html/wp-content/themes/Divi/functions.php中的组注意:未定义变量:第9行/home/appelhulp/domains/appelhulp.nl/public_html/wp-content/themes/Divi/functions.php中的选项/第25行的home/appelhulp/domains/appelhulp.nl/public_html/wp-content/themes/Divi/functions.php

所以我的问题是:
问题是什么?我如何让这些信息消失?

虽然我接受了@Burak的答案,但这只是正确答案的一半。另请参见@RahilWazir的部分,他/她回答的一半属于解决方案。由于Burak提供了正确的脚本,RahilWazir建议将其放在footer.php中,而不是functions.php。把它放在那里,就成功了。在functions.php中,没有让我实现我所追求的目标。为此,谢谢你们!


共有3个答案

赵超
2023-03-14

您需要等待DOM完全初始化。因此,将jQuery代码片段包装在ready处理程序中。或者更好的方法是在关闭footer.php之前将此代码段放入footer.php文件

jQuery(document).ready(function($) { // <-- wrap it
    var categories = {};
    var $group = jQuery();
    jQuery('select.app_select_services option').remove().each(function() {
        var $option = jQuery(this),
            contents = $option.text().split(' - '),
            group = jQuery.trim(contents[1]);

        if (!categories.hasOwnProperty(group)) {
            var optGroup = jQuery('<optgroup />', { label: group });
            optGroup.appendTo('select.app_select_services');
            categories[group] = optGroup;
        }

        categories[group].append(jQuery('<option />', {
            text: jQuery.trim(contents[0]),
            value: jQuery(this).val()
        }));
    });
});

孙俊彦
2023-03-14

当您使用双引号时,PHP会认为带有$的变量作为PHP变量签名。您需要将它们更改为单引号并重新排列代码,或者您需要查看适用于这种情况的herdoc。

echo <<<'EOT'
<script>
( function() {
    var categories = {};
    var $group = jQuery();
    jQuery('select.app_select_services option').remove().each(function() {
        var $option = jQuery(this),
            contents = $option.text().split(' - '),
            group = jQuery.trim(contents[1]);

        if (!categories.hasOwnProperty(group)) {
            var optGroup = jQuery('<optgroup />', { label: group });
            optGroup.appendTo('select.app_select_services');
            categories[group] = optGroup;
        }

        categories[group].append(jQuery('<option />', {
            text: jQuery.trim(contents[0]),
            value: jQuery(this).val()
        }));
    });
} )();
</script>
EOT;
蒋弘致
2023-03-14

wordpress中有一种更好、更标准的方法

<?php
function add_js_functions(){
?>
<script>
// your js functions here 
</script>
<?php
}
add_action('wp_head','add_js_functions');
 类似资料:
  • 问题内容: 我是Firebase的新手。我正在使用admin sdk(java code)将数据存储在firebase数据库中。我已经成功完成了这一部分。现在我想在创建数据库条目和通知时写火基础云函数 由于我在Internet上搜索了更多内容,因此仅找到了node.js代码。 https://firebase.google.com/docs/functions/开始 是否可以使用admin SDK

  • 本文向大家介绍如何在Python中编写递归函数?,包括了如何在Python中编写递归函数?的使用技巧和注意事项,需要的朋友参考一下 一个递归 函数是它的执行过程中调用自身的函数。这使函数可以重复多次,输出结果和每次迭代的结束。递归与无限有关。  下面是一个递归函数示例,用于查找整数的阶乘。 数字的阶乘 是从1到该数字的所有整数的乘积。  例如,阶乘9(表示为9!)为1 * 2 * 3 * 4 *

  • 我知道如何通过将两个函数作为输入并输出其合成函数来合成两个函数,但如何返回合成函数f(f(…f(x))?谢谢

  • 问题内容: 有什么办法可以使以下在Swift 3中正常工作? 该功能应该采取型的封闭,运行它传递到它,然后简单地返回。 另一个选择是为此使用运算符,例如“ ”(从Kotlin和Xtend语言中借用了这个想法)。 试图做这样的扩展: 但是它需要在闭包中显式声明参数类型: 这不方便,并且使整个想法不值得付出努力。类型已经在对象创建时指定,并且应该有可能不明确地重复它。 谢谢! 问题答案: HasApp

  • 我在Emacs中使用Clojure和苹果酒REPL。 在苹果酒REPL中有可能有多行功能吗?我该怎么做呢?

  • 问题内容: 我是JavaScript新手。如何编写JavaScript函数,该函数将返回计算机中已安装的Java版本。 感谢 Sunil Kumar Sahoo 问题答案: 使用JNLP,Sun统一部署机制,功能就是您的答案: NB 它可以在 各种浏览器* 中以 一致的方式 工作 *