快捷码输出显示在POST正文之前

时间:2012-12-10 作者:drake2300

Possible Duplicate:
short code output too early

如何通过帖子正文中的短代码将插件代码插入到正确的位置?

问题是wp引擎插入了插件代码BEFORE 始终张贴正文。能修好吗?

例如:我有一些[shortcode option="value"], 它在div容器中生成一些带有图像的文本。当我把它放在柱子里的时候AFTER 文本wp输出此代码:

<div> here is my plugin code </div> <p> here is the text of the post </p>

&hellip;因此,它占据了帖子的顶部。

我的错在哪里?

1 个回复
最合适的回答,由SO网友:shea 整理而成

我以前遇到过这个问题:短代码不应该display 任何内容(使用printecho), 相反return 要输出的内容。

如果转换所有输出语句太麻烦,或者需要使用始终显示输出的函数,可以使用output buffering. 缓冲区将“捕获”任何echo\'d或print\'并允许您将其写入变量。

function my_awesome_shortcode( $atts, $content = null ) {
    // begin output buffering
    ob_start();

    // output some text
    echo \'foo\' . "bar\\n";
    $greeting = \'Hello\';
    printf( \'%s, %s!\', $greeting, \'World\' );

    // end output buffering, grab the buffer contents, and empty the buffer
    return ob_get_clean();
}

add_shortcode( \'awesome\', \'my_awesome_shortcode\' );
了解更多有关Output Buffering Control 还有不同的Output Control Functions 您可以使用的。

结束