it-swarm.cn

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

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

$title = the_title();

以后使用HTML。这只是一个简化的例子,自然有一些函数,比如get_the_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
hakre

在直接回答这个问题时,WordPress不包含这方面的功能,部分原因是它没有特别适用于WordPress功能。即这是PHP(潜在)问题,而不是WordPress。

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

2
Joe Hoyle

我认为get_posts是你的请求的WP答案。模板标签已经创建用于The Loop,但是任何WP'黑客'都可以轻松使用get_posts(),并将例如:$ post-> post_title分配给变量。一开始令人沮丧的是,停止依赖The Loop,但很容易过去。

2
kevtrout

对于一些主题开发人员来说可能更容易,你必须按照它的方式来完成它。但你可以自己编写这个函数:

function get_output($function){
    return call_user_func('get_'.$function);
}

编写get_the_title()也比编写get_output('the_title')更短:)

1
2ndkauboy