好的,您可以将短代码添加到WP模板文件中,如:
<?php echo do_shortcode('[my_awesome_shortcode]'); ?>
但如果短代码打算包含这样的内容会怎么样:
[my_awesome_shortcode]
Hey, this is the content within the awesome shortcode.
[/my_awesome_shortcode]
我有点不确定如何将它放入模板文件中。
答案 0 :(得分:9)
对我有用的解决方案是将短代码组合成一个字符串,所以
<?php echo do_shortcode('[my_awesome_shortcode]<h1>Hello world</h1>[/my_awesome_shortcode]'); ?>
会奏效!
如果您想要执行一长串短代码命令,请为它们创建一个单独的字符串
$shortcodes = '[row]';
$shortcodes .= '[column width="2/3"]';
$shortcodes .= 'Content';
$shortcodes .= '[/column]';
$shortcodes .= '[column width="1/3"]';
$shortcodes .= 'More Content';
$shortcodes .= '[/column]';
$shortcodes .= '[/row]';
然后执行像这样的整个事情
<?php echo do_shortcode($shortcodes); ?>
答案 1 :(得分:8)
根据http://codex.wordpress.org/Shortcode_API#Enclosing_vs_self-closing_shortcodes
将$content = null
添加到快捷方式功能应该可以解决问题:
function my_awesome_shortcode_func( $atts, $content = null ) {
return '<awesomeness>' . $content . '</awesomeness>';
}
add_shortcode( 'my_awesome_shortcode', 'my_awesome_shortcode_func' );
这样:
[my_awesome_shortcode]
Hey, this is the content within the awesome shortcode.
[/my_awesome_shortcode]
会导致:
<awesomeness>Hey, this is the content within the awesome shortcode.</awesomeness>