我可以在PHP中拦截用户定义的全局函数吗?

时间:2016-01-13 14:25:29

标签: php wordpress

我正在尝试为Wordpress主题添加自定义。我没有替换原始代码,而是使用“子主题”技术,我可以单独替换文件。

现在,原始代码调用get_footer(),我喜欢拦截该调用,以便在实际的get_footer函数工作之前插入我自己的html输出。

我已经阅读了PHP 5的__call方法,但这仅适用于类,而WP代码不使用类而是使用全局函数。所以我不能使用那种技术,对吧?

1 个答案:

答案 0 :(得分:1)

get_footer()函数只需找到并加载适当的页脚模板。 WP get_footer中有一个钩子,它在模板加载之前就已经发生了。

Codex说这个函数的回声并不好,但您可以在get_footer()加载的模板之前使用它来加载自己的模板。

你可以在你的functions.php中执行类似的操作:

add_action( 'get_footer', 'my_hook_fn' );
function my_hook_fn() {
   load_template('my_template_file.php');
}

Codex

我在几个网站中使用那么厚,他们不使用子主题,但我认为这样做会有所帮助。