404重定向不工作

问题描述:

你好,我叫类型做一个插件,它显示了一个页面,而不是当一个页面上发送一个404页面不存在404重定向不工作

我知道我可以编辑404.php文件做到这一点,但我需要适应这个插件。

如果我删除if语句,那么它的作品在所有页面上都不是我想要的。
所以我把如果(is_404())语句,但它似乎并没有在WordPress周期太快在所有的工作现在...

function da_404_redirect() 
    { 
     if(is_404()) 
     {  
     query_posts('page_id=2'); 
     status_header("200"); 
     } 
    } 
    add_action('init','da_404_redirect'); 

要重定向,请不要挂钩init,尤其是如果使用条件标记(如is_404())。任何条件标签仍将返回init中的false

用途:template_redirect代替或pre_get_post,如果你需要改变对WP_Query

+0

谢谢我使用模板重定向哪个作品.....有没有人有一个很好的钩子资源.... –

+0

不客气。我没有这种追索权。我通常跳转到wp核心文件找到任何。 – AriePutranto

你的行动挂钩可能会知道,如果它是404. http://codex.wordpress.org/Plugin_API/Action_Reference/init。尝试使用以后的动作钩子。

+0

善于思考尼克 – buley

+0

感谢,@editor的东西,我知道这是错误的行动,他被钩住,但我不知道正确的一个。 – Nick

正如尼克上面说的,你可能会陷入晚点事件。根据我的经验,template_redirect是最好的选择。