我希望用户键入任何URL,例如:
mywebsite.com/helloworld
之后,我想用PHP
来塞子helloworld
,并将其打印在页面上。
默认情况下,WordPress会显示404页。我的想法是禁用此页面,但不确定是否有更好的解决方案。
我该如何实现?
答案 0 :(得分:1)
404
是许多HTTP Status Codes之一,因此,如果完全删除页面,则需要在WordPress和Web服务器(例如Apache或Nginx)上都将其禁用。建议不要 ,因为它会使浏览器显示具有无法控制/不希望的响应的合法404。
如果您的问题是“默认/我的模板404页面很糟糕,我想更改它”,请参考Codex page on custom 404 page或使用众多旨在为错误页面模板的插件之一。
我个人也建议不要将错误页面定向到您选择的页面,例如您的主页。除了使人们感到困惑的是为什么example.com/helloworld转到example.com之外,这几乎没有什么作用。从程序员的角度来看,这可能会增加开发时间,因为您可能会发现很难诊断为什么,而不是将其引至404
或{{ 1}},每个告诉您不同的信息。
答案 1 :(得分:1)
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;
} );
答案 2 :(得分:0)
要退出@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;
} );