PHP在Wordpress中的shortcode函数内部

时间:2019-02-04 01:22:29

标签: php wordpress

我正在使用Wordpress中需要使用PHP呈现的插件之一,因为我想将其用作WPbakery中的短代码。

开发人员在自定义位置显示的说明是以下代码行:

<?php wccf_print_product_field(array('key' => ‘mykey’)); ?>

我试图在短代码功能中添加它,例如:

function newshortcode1() {
wccf_print_product_field(array('key' => ‘mykey’));
}

add_shortcode( 'newshortcode', 'newshortcode1' );

但是遗憾的是,无论我如何更改此代码,这都不起作用。

我正在使用[newshortcode]现场帖子进行显示。

有人建议我在这里做错了吗?

2 个答案:

答案 0 :(得分:1)

您使用的是(撇号)而不是'(单引号)。

所以,从以下位置更新:

wccf_print_product_field(array('key' => ‘mykey‘)); 

收件人:

wccf_print_product_field(array('key' => 'mykey'));

答案 1 :(得分:0)

首先,一个简码函数需要返回所需的输出(它基本上替代了内容中的简码文本)。如果wccf_print_product_field返回了所需的输出,那么您可以

return wccf_print_product_field

但是,我强烈怀疑wccf_print_product_field在调用时直接打印或回显输出。因此,当wordpress对页面内容调用apply_filters而不是将其返回到短代码文本时,它将这样做。

因此,如果您真的必须在简码中使用它(如果没有其他函数仅返回乘积字段),那么您将必须捕获输出,以便可以在简码中返回它。像这样:

function newshortcode1() {
ob_start();  /* catch the output, so we can control where it appears in the text  */
wccf_print_product_field(array('key' => ‘mykey’));
$output .= ob_get_clean();
return $output;

如果您现在在页面上使用简码查看源代码,我敢打赌,您会在页面的较早位置看到您的产品字段,而该字段不应在此位置出现。