快捷码在POST前添加插件输出,而不是内联

时间:2012-06-01 作者:Thomas Thorogood

Possible Duplicate:
Shortcode always displaying at the top of the page

我有一个快速而肮脏的短代码,它在我的wordpress页面中输出一个表单。然而,它在我的页面的开头添加了短代码输出,而不是在我想要的地方内联。

例如:

(WordPress post:)
This is some text!
[shortcode_here]
This is more text!

(output)
The end result does this:
Shortcode output is showing up here!
This is some text!
This is more text!
shortcode函数只是提取一些信息。从数据库中并回显格式化结果,la:

   function shortcode_output() {
      //get stuff from database
      //format stuff
      echo <<<FORM
      <form method="POST" action="blah.php">
      <!--more html-->
      </form>
   FORM;
   }
我试着返回内容而不是回音,但结果只是0.

1 个回复
SO网友:Eugene Manuilov

您必须返回html而不是回显它。使用函数缓冲输出并返回:

function shortcode_output() {
    ob_start();
    //get stuff from database
    //format stuff
    echo <<<FORM
    <form method="POST" action="blah.php">
    <!--more html-->
    </form>
FORM;

    $html = ob_get_contents();
    ob_end_clean();

    return $html;
}

结束

相关推荐

the_excerpt and shortcodes

我正在使用索引页上的\\u摘录。我还在我的每一篇文章的开头使用dropcap快捷码。在索引页面上,帖子不会显示周围带有dropcap快捷码的信件。如果我的帖子中有“Dog”一词,索引页会显示“og”。在使用\\u摘录时,如何使用短代码?短代码 function drcap ($atts, $content = null) { return \'<div class=\"dropcap\">\' . do_shortcode($content) . \'</div&g