1

我编写的插件中有一个简码。简码总是打印在顶部,经过一番研究后,我发现我必须“返回”而不是“回显”才能将它放在正确的位置。

我在 PHP 文件中的各种脚本标签中有内联 HTML 、 css 、 javascript 。有没有一种方法可以让它工作而无需尝试返回所有内联 HTML。(向所有 html 标签添加“返回”是一项巨大的努力)?

我知道有人问了一个关于顶部短代码打印的问题,但这与我遇到的问题并不完全相同。

感谢您的回答。

只是为了让人们了解我正在处理的代码:这只是代码的一小部分,但是到处都是 html、css。

extract(shortcode_atts(array(
    'id'=>'0', 'key'=>'0'), $atts));


if(substr($id, -3) == "***") $id = substr($id, 0, 8);
$id_licenses = getDbInfo($id);

$id_desc = array();
if(is_array($id_licenses)) $id_desc = $id_licenses;
else $id_desc[0] = $id_licenses;

if(isset($_POST['desc'])) {     
    $info = $_POST['desc'];

    $ids = getDbInfoByDesc($info);
}




?>

<style type="text/css">
label.inputlabel
{
width: 8em;
float: left;
text-align: left;
margin-right: 0.5em;
display: block; 
padding-left: 0.5em;

font-family: Tahoma;
  }
4

1 回答 1

5

您必须返回最终结果,但如果您愿意,您可以缓冲结果和echo缓冲区内的任何内容,然后可以重新调整缓冲的数据,即

function yourShortCodeFunction(){
    ob_start();
    echo "Hello"; // this will not print out
    // more code
    $result = ob_get_contents(); // get everything in to $result variable
    ob_end_clean();
    return $result;
}
于 2012-10-02T18:34:29.193 回答