如何在Wordpress的functions.php里面写一个Javascript函数? [英] How to write a Javascript function inside the functions.php of Wordpress?
问题描述
我正在修改关于开发者推荐的插件( 适用于这种情况.
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屋!