在Wordpress短代码中包含PHP


Include PHP in Wordpress Shortcode

我正试图在循环中使用它,但我不确定如何实现它。这是一个类似于2unlock的插件,我正在循环中使用!

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

这个代码在我的wordpress模板中可能不起作用,你对解决方案有什么想法?

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

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

你不需要在短代码中"包含PHP",你需要使用PHP来构建你的短代码。

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

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

您不应该将php传递到shortcode属性中。这真的是一种糟糕的做法,也为黑客们打开了一个漏洞。

正确的方法是将php可执行代码构建到shortcode中,然后使用属性控制php在shortcode中的操作方式。get_attachment_icons应该在您的短代码中。控制输出的方式可以在属性中,并以的形式传递