我正在尝试在模板文件中设置一个短代码。
我有以下设置:
作为WP页面中的内容:
[test]shortcode![/test]
在functions.php中:
function test( $atts, $content = null ) {
return '<h1>'.$content.'</h1>';
}
add_shortcode("test", "test");
在上面页面的template.php中:
<?php echo do_shortcode('[test]'); ?>
虽然没有返回任何内容。如果我在template.php中调用the_post()
和the_content()
,短代码会正确显示为h1,但这不是我想要的功能,我需要能够插入[test]
特定地方的短代码。
此外,似乎我可以在函数中添加硬编码内容并显示,所以很可能$ content变量没有返回任何数据?可能导致什么?
答案 0 :(得分:0)
您应该回显短代码以使其起作用:
<?php echo do_shortcode('[test]'); ?>
答案 1 :(得分:0)
答案 2 :(得分:0)
您需要回显输出。当使用do_shortcode时,它将在wp中运行 - 包含一个文件shortcodes.php。触发功能时会将内容返回给调用函数。所以代码将如下所示:
<?php echo do_shortcode('[test]'); ?>
第二件事,
你的函数参数有默认的null
参数,所以如果你没有将任何内容传递给短代码,那么它就不会显示任何内容。
你需要做这样的事情
<?php echo do_shortcode('[test param="content_to_be_show"]'); ?>
或者,如果您想在开始标记和结束标记内容之间传递作为参数,您应该执行以下操作:
function my_custom_shortcode_func( $atts, $content = null ) {
return '<p>' . $content . '</p>';
}
add_shortcode( 'my_custom_shortcode', 'my_custom_shortcode_func' );
<?php echo do_shortcode('[my_custom_shortcode]<p>Hello this is from custom shortcode contents</p>[/my_custom_shortcode]'); ?>
答案 3 :(得分:0)
由于您获得了空结果字符串,因此未在测试短代码之间指定任何内容。你需要写
var formData = new FormData()
for (var key in model)
formData.append(key, furnizor[key])
formData.append('file', fileToUpload)
let headers = new Headers({ 'Content-Type': 'multipart/form-data' })
let options = new RequestOptions({ headers: headers })
return this.authHttp.post('/api/furnizor', formData, options).map(res => res.json())
以上代码将结果显示为<?php $strvar='Load String value here'; echo do_shortcode('[test]'.$strvar.'[/test]'); ?>
$ strvar = get_the_content();