鱼见海资源网最新教程:
template_redirect
是非常常用的一个 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(加载)。
文章来源于互联网
© 版权声明
温馨提示:本站知识付费,提供的一切软件、教程和内容信息都来自网络收集整理,仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,版权争议与本站无关。用户必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!
THE END
暂无评论内容