繁体   English   中英

在Wordpress中禁用404页面

[英]Disable 404 Page in Wordpress

我希望用户键入任何URL,例如:

mywebsite.com/helloworld

之后,使用PHP我想使用slug helloworld ,并将其打印在页面上。

默认情况下,Wordpress显示404页。 我的想法是禁用此页面,但不确定是否有更好的解决方案。

我该如何实现?

add_filter( 'pre_handle_404', function() {
    # you can do anything you want here but the easiest and safest is
    # wp_redirect( 'your url with query parameters from the failing 404 url' );
    # exit();
    return FALSE;
} );

404是许多HTTP状态代码之一 ,因此,如果您完全删除该页面,则需要同时在WordPress和Web服务器(例如Apache或Nginx)上将其禁用。 建议这样做,因为它会使浏览器显示合法的404,并且具有无法控制/不希望的响应。

如果您的问题是“默认/我的404模板页面很糟糕,我想更改它”,请参考自定义404页面上Codex页面,或使用众多旨在为错误页面模板的插件之一。

我个人也建议不要将错误页面定向到您选择的页面,例如您的主页。 除了使人们感到困惑的是为什么example.com/helloworld转到example.com之外,这几乎没有什么作用。 从程序员的角度来看,它可能会增加开发时间,因为您可能会发现很难诊断为什么将您重定向到主页,而不是用它来的404500来告诉您不同的信息。

要取消使用@magenta,也可以为此添加条件。 这是我所做的:

add_action( 'pre_handle_404', function() {
    global $wp_query;

    if(!$wp_query->found_posts){
        if($wp_query->query['post_type']=="clients"){
            wp_redirect( '/login' );
            exit;
        }
    }

    return FALSE;
} );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM