所以,为了让这段代码正常工作,我需要通过return而不是echo来输出函数“get_flickr_rss”...我相信这段代码对我不起作用的原因是因为“get_flickr_rss”函数本身在某种程度上默认为回声而不是回归。如何调用函数强制它返回而不是回显?
function generate_flickr_rss($atts, $content = null) {
// default parameters
extract(shortcode_atts(array(
'set' => '72157625809767439',
'photos' => '20'
), $atts));
// Call FLickrRSS Hook
return get_flickrRSS(array('set' => $set, 'num_items' => $photos, 'type' => 'set'));
}
我尝试使用以下代码将其作为返回进行逆向工程,但不幸的是,没有骰子。
function generate_flickr_rss($atts) {
// default parameters
extract(shortcode_atts(array(
'set' => '72157625809767439',
'photos' => '20'
), $atts));
// Call FLickrRSS Hook
$flickr_rss_return = get_flickrRSS(array('set' => $set, 'num_items' => $photos, 'type' => 'set'));
return $flickr_rss_return;
}
add_shortcode('flickr_rss', 'generate_flickr_rss');
add_shortcode('flickr_rss', 'generate_flickr_rss');
答案 0 :(得分:2)
使用输出缓冲,您可以捕获函数的输出。
ob_start();
get_flickrRSS(...);
return ob_get_clean();
当然你应该更改函数以返回它的输出,但我想这是不可能的。 ; - )
答案 1 :(得分:1)
我看了一下WP插件flickrRSS,但改变并不是那么好。
在函数printGallery
中,有许多echo
语句。将这些替换为将回显的字符串连接到在函数开头定义为空字符串的$result
变量的行。
然后,在$result
函数的末尾返回printGallery
。然后,根据您的需要(由另一个输入参数定义)将get_flickrRSS
修改为return
或echo
此字符串。
当然,所有这些都会在下次更新插件时被覆盖,所以我建议将插件编写者指向此Stack Overflow页面并要求他修改插件以长期支持您的需求:)
答案 2 :(得分:0)
$foo = get_flickrRSS(.....;
return $foo;