wordpress 打印中的简码始终位于顶部,内联 HTML
Posted
技术标签:
【中文标题】wordpress 打印中的简码始终位于顶部,内联 HTML【英文标题】:Shortcode in wordpress printing always on the top with inline HTML 【发布时间】:2012-09-23 15:22:48 【问题描述】:我编写的插件中有一个简码。简码总是打印在顶部,经过一番研究后,我发现我必须“返回”而不是“回显”才能将它放在正确的位置。
我在 php 文件中的各种脚本标签中有内联 html、css、javascript。有没有一种方法可以让它工作而无需尝试返回所有内联 HTML。 (向所有 html 标签添加“return”是一项巨大的努力)?
我知道有人提出了关于顶部短代码打印的问题,但这与我遇到的问题并不完全相同。
感谢您的回答。
只是为了让人们了解我正在处理的代码:这只是一小部分代码,但到处都是 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;
【问题讨论】:
【参考方案1】:您必须返回最终结果,但如果您愿意,您可以缓冲结果,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;
【讨论】:
你如何处理内联的 HTML、css、javascript。那不在php代码中,它在同一文件中的php标签之外。 ?我认为 HTML 先得到输出。 太棒了,我试过了。谢谢。我不知道不在 php 标记中的内联 HTML 会被视为 php 字符串。我认为将它存储在缓冲区中将始终用于回显字符串。以上是关于wordpress 打印中的简码始终位于顶部,内联 HTML的主要内容,如果未能解决你的问题,请参考以下文章