4

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

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

但是,如果短代码旨在环绕这样的内容怎么办:

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

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

4

2 回答 2

10

对我有用的解决方案是将短代码组合成一个字符串,所以

<?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); ?>
于 2014-01-26T09:50:53.903 回答
8

根据http://codex.wordpress.org/Shortcode_API#Enclosure_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>
于 2012-07-27T21:11:55.623 回答