我是PHP新手,我来自Objective-C。我需要为WP创建一个插件,该插件返回一个HTML表,其中每行都由JSON中的数据填充。本质上,作为一个示例,我需要将echo
替换为return
:
$jsonurl = "http://xxxx/club/api/xxxx/category/";
$json = file_get_contents($jsonurl,0,null,null);
$json_output = json_decode($json);
//print_r ($json_output);
echo "<table>";
foreach ( $json_output->result as $result )
{
echo "<tr><td>".$result->id."</td><td>".$result->categoryKind."</td><td>".$result->ranking."</td>";
}
echo "</table>" ;
这工作!我可以看到预期的输出.但通过Shortcode在WP中显示表,我需要return
和没有echo
.那么我怎么能用return
替换echo
?
我试过:
function foobar_func(){
$html= "<table>";
foreach ( $json_output->result as $result )
{
$html. = "<tr><td>".$result->id."</td><td>".$result->categoryKind."</td><td>".$result->ranking."</td>";
}
$html. = "</table>" ;
return $html;
}
add_shortcode( 'foobar', 'foobar_func' );
没有成功。任何帮助都是受欢迎的。
UPDATE:结果相同(没有工作),我会疯狂退出。
function foobar_func($json_output){
$html= "<table>";
foreach ( $json_output->result as $result )
{
$html. = "<tr><td>".$result->id."</td><td>".$result->categoryKond."</td> <td>".$result->ranking."</td>";
}
$html. = "</table>" ;
return $html;
}
add_shortcode( 'foobar', 'foobar_func' );
4条答案
按热度按时间t5fffqht1#
请尝试ob_start()方法,我认为它对你有用。http://php.net/manual/en/function.ob-start.php
djp7away2#
变量作用域是这里的问题。
$json_output
在函数中不可访问。更改为以下内容:
除了将其作为全局变量调用之外,您还可以在函数调用中传递它。
然后在调用函数时,使用
foobar_func($json_output)
zzlelutf3#
经过调查我找到了出路。但老实说,我不明白为什么这个代码的工作。谢谢大家把我的正确道路。
验证码:
xmjla07d4#
如果有人仍然面临这个问题:
1.剪切函数内部的所有内容,只返回任何字符串:
1.发布您的页面
1.返回到您的 * functions.php *
1.return“Hi”;
1.将完整代码粘贴到函数内部
该页面将从您的代码中获取输出,而无需再次发布它。