我已经设法在我的函数中做了一个测试短代码。php,它确实显示在我的联系人7表单上。奇怪的是,它显示在表单标记之外。
这是我的短代码
function cf7_shortcode()
{ ?>
<span>test shortcode</span>
<?php }
add_shortcode(\'cf7_shortcode\', \'cf7_shortcode\');
此外,我还添加了另一行代码,以使短代码能够在联系人表单模板中工作
add_filter(\'wpcf7_form_elements\', \'do_shortcode\');
这是我的表单模板
<label> Nama
[text* nama] </label>
<label> Emel
[email* emel] </label>
<label> No. Telefon
[tel* telefon] </label>
<label> Mesej
[textarea mesej] </label>
<br>
[cf7_shortcode]
[submit "Hantar"]
这就是所发生的
我在互联网上搜索了人们是如何做的,也搜索了我是如何做的,除了我的shorcode在表单标签之外,而其他人没有。我怎样才能解决这个问题?
最合适的回答,由SO网友:Sally CJ 整理而成
这是因为您的短代码响应输出,而不是返回输出&mdash;短代码不应回显输出,但return
it&mdash;除非在某些情况下像输出中的复杂HTML标记一样,需要使用输出缓冲。
因此,您的代码应该如下所示:
function cf7_shortcode() {
return \'<span>test shortcode</span>\';
}
add_shortcode( \'cf7_shortcode\', \'cf7_shortcode\' );