PHP在WordPress的短代码函数内部

问题描述 投票:0回答:2

我使用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] INSITE后进行显示。

任何建议我在做什么错在这里?

php wordpress
2个回答
1
投票

您正在使用(单引号),而不是'(单引号)。

所以,从更新:

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

至:

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


0
投票

首先一个短码函数需要返回所希望的输出(它实质上取代了内容简码文本)。 IF 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;

如果您在页面上查看源代码与简码,因为它是现在,我敢打赌,你的页面,它不应该是,在一开始可能是正确的地方更早看到你的产品领域。

© www.soinside.com 2019 - 2024. All rights reserved.