我有一个脚本,用于检查站点的状态并将结果写入xml文档。Xml是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<xml>
<sites>
<site1>result of site1</site1>
<site2>result of site2</site2>
...
</sites>
</xml>
然后我有一个函数,可以用wordpress短代码获取每个网站的xml内容,如下所示:
<?php
function CheckRemoteService($atts) {
extract(shortcode_atts(array(
'name' => 'txt',
), $atts));
$xml = simplexml_load_file('my.xml');
echo $xml->sites->$name;
}
add_shortcode('checkmyurl','CheckRemoteService');
?>
短代码给了我正确的输出,但所有结果都被放在顶部的同一行,就像被阻止一样。我想将这些结果与其他数据一起插入一个表中。这是xml限制还是我犯了一些错误?谢谢
你的函数不应该echo
任何东西,它应该return
它-代码是在Wordpress准备页面时运行的,而不是在它被输出到浏览器时,所以在"真实"输出开始之前,任何直接输出都只会显示在页面顶部。
顺便说一句,一旦您不使用echo,那么将SimpleXML对象显式转换为字符串可能是一个好主意,以避免任何意外行为:
return (string)$xml->sites->$name;