什么时候wp重定向方法可以安全挂接?

时间:2017-04-08 作者:iyrin

我当前正在使用wp_safe_redirect() 在连接到template_include 滤器我想在这里做条件语句,以确定是否应根据用户能力加载模板。如果没有,则重定向到主页。看起来是这样的:

public function my_load_template( $page_template ) {

    if ( is_singular( \'my_cpt\' ) && is_user_logged_in()
        && current_user_can( \'update_core\' ) ) {
        return plugin_dir_path( dirname( __FILE__ ) ) .  \'public/templates/single-my_cpt.php\';
    }
    else {
        wp_safe_redirect( home_url() );
        exit;
    }
}   
挂钩使用add_filter( \'template_include\', my_load_template\' );

如果它重定向,我会收到一个浏览器错误,说该站点“重定向了你太多次”我怀疑这可能是在筛选期间运行重定向的结果。

我希望尽早对用户能力进行有条件的检查。那么什么时候可以安全地进行重定向呢?我是否应该在单帖子模板中进行功能检查和重定向?

1 个回复
最合适的回答,由SO网友:iyrin 整理而成

我一直在使用操作挂钩,我最早能让它与我的用户条件和页面类型条件一起正常工作的是wp 行动虽然,我目前正在将其连接到template_redirect 根据《食品法典》的规定,这似乎是最合适的,也是为了达到这一目的:

如果您需要在完全了解所查询内容的情况下进行重定向,那么这是一个很好的挂钩。

在之前的操作中尝试重定向wp 按[操作运行]的顺序将导致问题,例如无法修改标题或出现“重定向您太多次”错误。

相关推荐

About Hooks and Filters

嗯,我很难理解动作和过滤器之间的区别。我确实在代码中使用动作,但我是一个新手,甚至连一点过滤器都不知道。我去过codex,以及NickTheGeek、BillErickson、GaryJones等的多个网站,但没有去过vein。如果你能用简单的话告诉我,并举例说明动作、过滤器和挂钩的基本内容和区别。非常感谢。