如何在Wordpress的functions.php里面写一个Javascript函数? [英] How to write a Javascript function inside the functions.php of Wordpress?

查看:25
本文介绍了如何在Wordpress的functions.php里面写一个Javascript函数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在修改关于开发者推荐的插件( 适用于这种情况.

echo <<<<<'EOT'<脚本>( 功能() {var 类别 = {};var $group = jQuery();jQuery('select.app_select_services 选项').remove().each(function() {var $option = jQuery(this),内容 = $option.text().split(' - '),group = jQuery.trim(contents[1]);如果(!categories.hasOwnProperty(组)){var optGroup = jQuery('<optgroup/>', { label: group });optGroup.appendTo('select.app_select_services');类别[组] = optGroup;}类别[组].append(jQuery('<option/>', {文本:jQuery.trim(contents[0]),值:jQuery(this).val()}));});})();EOT;

I'm altering a plugin on developer recommendations (See latest post), which advices to write a bit of Javascript in the functions.php of Wordpress.

Now, when I did that my whole wordpress went blank. Well, after a bit of thinking.. "You can't write plain Javascript inside of PHP"..

So I wrote them inside a <script> tag, and that inside of a echo ", "; tags. Now.. I'm unsure of the function working (have not tested that yet), but Wordpress is showing again, but.. I'm getting the message

Notice: Undefined variable: group in /home/appelhulp/domains/appelhulp.nl/public_html/wp-content/themes/Divi/functions.php on line 8
Notice: Undefined variable: option in /home/appelhulp/domains/appelhulp.nl/public_html/wp-content/themes/Divi/functions.php on line 9
Notice: Undefined variable: option in /home/appelhulp/domains/appelhulp.nl/public_html/wp-content/themes/Divi/functions.php on line 25

And this is the code file

So my question:
What is the problem and how do I make those messages disappear?

The correct answer

Although I accepted @Burak's answer, this is only half of the correct answer. Please also see @RahilWazir's part, which half of his/her answer belongs to the solution. As Burak came with the correct script, RahilWazir came with the suggestion to place it in the footer.php instead of functions.php. And placing it there, did the trick. In functions.php didn't let me achieve what I was seeking. Therefor, thanks both!

解决方案

As you are using double quotes, PHP will think that the variable with $ signs as a php variable. You need to either change them to single quote and rearrange the code either you need to take a look at heredoc which is suitable for situations like this.

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;

这篇关于如何在Wordpress的functions.php里面写一个Javascript函数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆