Php 在Wordpress中禁用404页面

Php 在Wordpress中禁用404页面,php,wordpress,Php,Wordpress,我希望用户键入任何URL,例如: mywebsite.com/helloworld 之后,使用PHP我想获取slughelloworld,并将其打印在页面上 默认情况下,Wordpress显示404页。我的想法是禁用此页面,但不确定是否有更好的解决方案 我怎样才能做到这一点 404是其中之一,因此,如果完全删除该页面,则需要在WordPress和web服务器(如Apache或Nginx)中禁用它。这是不建议的,因为它会使浏览器显示带有不可控/不受欢迎响应的合法404 如果您的问题是“默认的/M

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

mywebsite.com/helloworld
之后,使用
PHP
我想获取slug
helloworld
,并将其打印在页面上

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


我怎样才能做到这一点

404
是其中之一,因此,如果完全删除该页面,则需要在WordPress和web服务器(如Apache或Nginx)中禁用它。这是不建议的,因为它会使浏览器显示带有不可控/不受欢迎响应的合法404

如果您的问题是“默认的/MyTemplates404页面很糟糕,我想更改它”,请参考或使用为模板错误页面设计的众多插件之一


我个人也建议不要将错误页面指向您选择的页面,例如您的主页。这只会让人们困惑,为什么example.com/helloworld会转到example.com。从程序员的角度来看,这可能会为您的开发增加时间,因为您可能会发现更难诊断为什么您会被重定向到主页,而不是使用
404
500
,它们分别告诉您不同的信息。

要使用@magenta,您还可以为此添加条件。这就是我所做的:

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;
} );
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;
} );

通过禁用404页面,您试图解决什么问题?自定义404页面是一回事,完全摆脱404似乎有问题。“404”的要点是找不到请求,无论是硬编码页面还是像WP这样的DB驱动的CMS。当找不到页面时,只显示用户在页面URL中键入的内容似乎毫无意义。WordPress有一个特定的404模板(在任何主题中)。为什么不利用它来做你需要的事情呢?用户应该能够访问网站上的链接。例如:
http://www.mywebsite.com/land/[任何slug]
我要slug,然后进行搜索。如果找不到类别,我将显示一些自定义文本,如果找到,则显示类别。Wordpress返回404