如何在Wordpress模板文件中添加结束短代码?

时间:2012-07-27 21:03:20

标签: php wordpress templates shortcode

好的,您可以将短代码添加到WP模板文件中,如:

<?php echo do_shortcode('[my_awesome_shortcode]'); ?>

但如果短代码打算包含这样的内容会怎么样:

[my_awesome_shortcode]
Hey, this is the content within the awesome shortcode.
[/my_awesome_shortcode]

我有点不确定如何将它放入模板文件中。

2 个答案:

答案 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>