为什么WordPress中没有全局函数来返回任何函数调用的输出?

时间:2010-08-30 作者:hakre

我们有模板标签和一些以get开头的函数。有时候,在主题上,这样做会很好:

$title = the_title();
以后使用html。这只是一个简化的示例,当然有一些函数,如get\\u the\\u title();但这仅适用于该功能。

我想知道为什么没有这样的函数:

function get_output() {
    $args     = func_get_args();
    $callback = array_shift($args);
    ob_start();
    call_user_func_array($callback, $args);
    return ob_get_clean();
}
可以将任何具有输出的函数转换为返回函数:

$title = get_output(\'the_title\');
你知道为什么从来没有想过吗?每一个主题作者或黑客都可以利用这些,对吗?

3 个回复
最合适的回答,由SO网友:Joe Hoyle 整理而成

在直接回答这个问题时,WordPress没有为此提供功能,部分原因是它没有专门应用于WordPress功能。一、 这是一个PHP(潜在)问题,而不是WordPress。

此外,我不会说WordPress有责任为没有提供返回数据功能的插件等提供解决方案(这与WordPress的一般风格相反)。

SO网友:kevtrout

我认为get_posts 是WP对您的请求的答复。已经创建了模板标记以在循环中使用,但是任何WP“黑客”都可以很容易地使用get\\u posts()来代替,并为变量分配,例如:$post->post\\u title。一开始,停止依赖循环是令人沮丧的,但很容易就过去了。

SO网友:2ndkauboy

对于一些主题开发人员来说,这样做可能更容易,因此您必须按原样进行。但您可以自己编写函数:

function get_output($function){
    return call_user_func(\'get_\'.$function);
}
写入get\\u the\\u title()也比写入get\\u输出(“the\\u title”)短:)

结束

相关推荐

Adding goodies to themes

如何在主题更新时向Arjuna-X等主题添加内容而不丢失?儿童主题是一种很好的方式,还是有其他选择?如果新版本的主题对我添加的功能具有本机支持,该怎么办?