将短码内容与嵌套短码一起使用

时间:2019-12-04 作者:Toniq

这是一个短代码示例。

[a][b]something[/b][/a]
它应该像这样与do\\u shortcode($content)一起使用;

function a_shortcode($atts = [], $content = null) {

    do_shortcode($content);

    return $result;

}

add_shortcode(\'a\', \'a_shortcode\');

function b_shortcode($atts = [], $content = null) {

    return $whatever;

}

add_shortcode(\'b\', \'b_shortcode\');
有没有理由不使用没有do\\u shortcode的内容?

  [a][b]something[/b][/a]

function a_shortcode($atts = [], $content = null) {

    //use content here, parse [b]something[/b] as string and do whatever

    return $result;

}

1 个回复
SO网友:Krzysiek Dróżdż

你不必使用do_shortcode 在您的短代码回调函数中。

但如果不这样做,则无法嵌套短代码,因此站点上添加的其他短代码将无法在其中工作。

假设您的快捷码回调如下所示:

function a_shortcode($atts = [], $content = null) {

    //use content here, parse [b]something[/b] as string and do whatever
    $result = \'<div>\'. $content .\'</div>\';
    return $result;

}
所以它接受给定的内容并将其包装在div.中,因为它不运行do_shortcode, 所有放置在内容中的短代码都将被忽略,并且不会被解析。

有时也可以——如果您编写一个短代码来显示按钮,您(很可能)将无法将高级短代码作为该按钮的标签。

有时这是不好的-如果您为列编写一个短代码,您希望能够在该列中放置其他短代码(如按钮)。。。

相关推荐

Use Post ID in functions.php

我的functions.php. 它工作得很好:当预订时,它会给我发电子邮件。易于理解的然而,我希望它能给我发送该预订的post ID,而不仅仅是“你好,世界!”消息帮助function add_to_system() { // get post meta // $email = get_post_meta(\'\',$post_id) // $post_id = get_queried_object_id(); mail(\'michael.mc