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