为什么 Wordpress 无法识别我创建的函数?
Why is Wordpress not recognising the function I created?
我正在尝试创建一个包含两个变量的函数。一个变量是我想要悬停的文本,另一个变量是当我悬停在提到的第一个文本上时我想要显示的文本。我正在使用 Shortcodes Ultimate 中的以下简码来创建此函数:
[su_tooltip style="yellow" position="top" shadow="no" rounded="no" size="default" title="" content="Tooltip text" behavior="hover" close="no" class=""]Hover me to open tooltip[/su_tooltip]
我在functioins.php中写了如下函数:
function hov($x, $y)
{
echo "[su_tooltip style= \"yellow\"
position=\"top\"
shadow=\"no\"
rounded=\"no\"
size=\"default\"
title=\"\"
content =strval($y)
behavior=\"hover\"
close=\"no\"
class=\"\"]$x'[/su_tooltip)]'";
}
我添加了反斜杠,因此代码忽略了引号。
我保存了这个功能。我在文本编辑器页面中尝试了 运行 这个功能,如下所示:
hov(arg1,arg2)
但它只是将“hov(arg1,arg2)”作为文字字符串发布。
知道我做错了什么吗?提前致谢。
如果您尝试在 HTML
中输入 hov('foo', 'bar');
,那么它会将其输出为文本。
要从模板内部调用 PHP
函数,您需要开始和结束 PHP
标记。
因此,在您的模板中,要调用此函数,您将使用以下代码。
<?php hov('foo', 'bar'); ?>
如果你想调用 shortcode
那么你需要使用 echo do_shortcode(['...']);
<?php echo do_shortcode(hov('foo', 'bar')); ?>
修改后的答案
要通过在 post 编辑器中调用 运行 一个 PHP
函数,您需要创建一个 shortcode
短代码是使用 WordPress 函数创建的 add_shortcode
参见:https://developer.wordpress.org/plugins/shortcodes/
add_shortcode('hov', 'hov'); // create ['hov'] which calls hov()
function hov($args = [])
{
return do_shortcode(sprintf('[su_tooltip style="yellow" position="top" shadow="no" rounded="no" size="default" title="" content="%s" behavior="hover" close="no" class=""]%s[/su_tooltip]', $args['y'], $args['x']));
}
用法示例
[hov y="foo" x="bar"]
其中 x
和 y
作为 $args
中的项目传递
我正在尝试创建一个包含两个变量的函数。一个变量是我想要悬停的文本,另一个变量是当我悬停在提到的第一个文本上时我想要显示的文本。我正在使用 Shortcodes Ultimate 中的以下简码来创建此函数:
[su_tooltip style="yellow" position="top" shadow="no" rounded="no" size="default" title="" content="Tooltip text" behavior="hover" close="no" class=""]Hover me to open tooltip[/su_tooltip]
我在functioins.php中写了如下函数:
function hov($x, $y)
{
echo "[su_tooltip style= \"yellow\"
position=\"top\"
shadow=\"no\"
rounded=\"no\"
size=\"default\"
title=\"\"
content =strval($y)
behavior=\"hover\"
close=\"no\"
class=\"\"]$x'[/su_tooltip)]'";
}
我添加了反斜杠,因此代码忽略了引号。 我保存了这个功能。我在文本编辑器页面中尝试了 运行 这个功能,如下所示:
hov(arg1,arg2)
但它只是将“hov(arg1,arg2)”作为文字字符串发布。 知道我做错了什么吗?提前致谢。
如果您尝试在 HTML
中输入 hov('foo', 'bar');
,那么它会将其输出为文本。
要从模板内部调用 PHP
函数,您需要开始和结束 PHP
标记。
因此,在您的模板中,要调用此函数,您将使用以下代码。
<?php hov('foo', 'bar'); ?>
如果你想调用 shortcode
那么你需要使用 echo do_shortcode(['...']);
<?php echo do_shortcode(hov('foo', 'bar')); ?>
修改后的答案
要通过在 post 编辑器中调用 运行 一个 PHP
函数,您需要创建一个 shortcode
短代码是使用 WordPress 函数创建的 add_shortcode
参见:https://developer.wordpress.org/plugins/shortcodes/
add_shortcode('hov', 'hov'); // create ['hov'] which calls hov()
function hov($args = [])
{
return do_shortcode(sprintf('[su_tooltip style="yellow" position="top" shadow="no" rounded="no" size="default" title="" content="%s" behavior="hover" close="no" class=""]%s[/su_tooltip]', $args['y'], $args['x']));
}
用法示例
[hov y="foo" x="bar"]
其中 x
和 y
作为 $args