问题描述
有没有办法在模板开始时自动运行 get_header()
,最后是 get_footer()
?
目前我的代码与这些调用太重复了。
我一直在寻找一种方法来做到这一点,但是我在 Google 中找不到。
最佳解决方案
看看 wp-includes/template-loader.php
… 似乎有一种方法:
if ( $template = apply_filters( 'template_include', $template ) )
include( $template );
您可以挂接该过滤器,处理回调函数中的包含并返回 FALSE
。
示例代码,未测试:
add_filter( 'template_include', function( $template ) {
get_header();
include $template;
get_footer();
return FALSE;
});
次佳解决方案
@scribu 提出了一种减少 WordPress 模板中的代码重复的方法,他称之为 theme wrappers,它实现了您正在寻找的内容。 roots theme 使用轻微修改的 version of this method 。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。