在Wordpress Shortcode中包含PHP

时间:2015-03-26 17:37:23

标签: php wordpress

我试图在循环中使用它,但我不确定如何实现它。它是一个like2unlock插件,我在循环中使用它!

<?php echo do_shortcode('[l2g]<span class="download left"><?php get_attachment_icons($echo=true); ?></span>[/l2g]'); ?>

这段代码显然不会在我的wordpress模板中运行,你对解决方案的看法是什么?

2 个答案:

答案 0 :(得分:1)

您只需构建短代码字符串:

echo do_shortcode('[l2g]<span class="download left">' . get_attachment_icons(true) . '</span>[/l2g]');

你不需要&#34;包括PHP&#34;在您的短代码中,您需要使用PHP来构建您的短代码。

此外,$echo = true是在函数定义中指定默认参数的表示法。您应该只传递参数而不将其分配给变量:get_attachment_icons(true)。由于true是默认值,因此您也可以在不指定任何参数的情况下调用该函数。

顺便说一句,get_attachment_icons($echo=true)将正常工作,因为赋值的计算结果为赋值,但仍然不是使用默认参数调用函数的正确方法。

答案 1 :(得分:1)

你不应该将php传递给短代码属性。这是非常糟糕的做法,也为黑客开辟了一个漏洞。

正确的方法是将您的php可执行代码构建到您的短代码中,然后使用属性来控制PHP在短代码中的运行方式。 get_attachment_icons应该在您的短代码中。您希望如何控制输出可以在您的属性中并按原样传递