^ 回到顶部
  • 人生没有定律,每个人都有自己的节奏
  • 本站wordpress建站教程均通过实践后发布,希望对你有帮助
  • 希望你的坚持,都是因为热爱,而不是因为不甘心
  • 5年wordpress建站经验,5星服务品质
  • 那些不愿意让你吃亏的人,才是真正值得你深交的人,也是值得你付出时间的人
  • 阿里云1核2g仅需102元/年,今日10点开抢

在wordpress主题开发中正确理解和使用 template_redirect 和 template_include

阿里云双12限时特惠

template_redirect 是 wordpress 主题开发中非常常见的一个 WordPress 接口,当运行的时候,WordPress 已经运行了主循环,所有的对象都已经被实例化了,但是还没有把结果输出到浏览器。这是最后一个 hook 可以将用户导向其他的地方了,当然也是需要所有查询对象都实例化之后重定向的最好地方。但是这个 hook 最好不要用于加载一个其他模板文件。

下面是一些我们常见到的代码:

add_action('template_redirect','my_callback');
function my_callback(){
    if( some_condition()){
        include( SOME_PATH .'/some-custom-file.php');
        exit();
    }
}

这样使用有个问题是,其他在这之后使用 template_redirect Hook 的代码将不会运行。这样会导致站点被出错哦或者导致一些非常奇怪的 bug,如果你要加载一个其他模板,建议你使用这个 filter Hook:template_include。

add_filter('template_include','my_callback');
function my_callback($original_template){
    if( some_condition()){
        return SOME_PATH .'/some-custom-file.php';
    }else{
        return$original_template;
}
}

同样的效果,但是不会影响其他插件或者主题的代码,他们的区别应该很容易区分:

template_redirect 用于 redirects(重定向)。
template_include 用于 includes(加载)。

让小雨知道,这篇文章帮到了你
扫码关注微信公众号zs40086(微搜片)随时随地微信看片,抢先福利电影等你来

热门推荐

如有疑问,请前往问答中心反馈!

反馈