如何在特定的 Wordpress url 上禁用 404 header
How to disable 404 header on specific Wordpress url
我使用此代码将特定 url 重定向到自定义 Wordpress 主题上的 php 文件:
add_action('wp', function() {
if ( trim(parse_url(add_query_arg(array()), PHP_URL_PATH), '/') === 'pagename' ) {
include(locate_template('mysciprt.php'));
exit();
}});
(我知道我可以使用重写规则,但出于某些原因我需要使用此代码)。
工作很棒。问题是该页面仍然具有 404 状态的 http header。这是一个问题,有几个原因(其中一些是:seo,post 脚本不能使用...)。
我的问题是:有什么办法可以解决吗?
我试过的:
我尝试添加:
global $wp_query;
status_header(200);
$wp_query->is_page = true;
$wp_query->is_404 = false;
一开始没有帮助,然后我将 action('wp'..
更改为 action('init'...
并且有效!但问题是我使用 'wp'
而不是 'init'
的原因是因为我需要在此脚本上使用 get_query_var()
而在使用 'init'
操作时我不能.
只需发送带有 200 状态代码的 header。试试这个:
header("HTTP/1.1 200 OK");
结果比我想的要简单:
刚刚添加:
global $wp_query;
status_header( 200 );
$wp_query->is_page = true;
$wp_query->is_404=false;
先到 script.php 文件本身。
我使用此代码将特定 url 重定向到自定义 Wordpress 主题上的 php 文件:
add_action('wp', function() {
if ( trim(parse_url(add_query_arg(array()), PHP_URL_PATH), '/') === 'pagename' ) {
include(locate_template('mysciprt.php'));
exit();
}});
(我知道我可以使用重写规则,但出于某些原因我需要使用此代码)。
工作很棒。问题是该页面仍然具有 404 状态的 http header。这是一个问题,有几个原因(其中一些是:seo,post 脚本不能使用...)。
我的问题是:有什么办法可以解决吗?
我试过的:
我尝试添加:
global $wp_query;
status_header(200);
$wp_query->is_page = true;
$wp_query->is_404 = false;
一开始没有帮助,然后我将 action('wp'..
更改为 action('init'...
并且有效!但问题是我使用 'wp'
而不是 'init'
的原因是因为我需要在此脚本上使用 get_query_var()
而在使用 'init'
操作时我不能.
只需发送带有 200 状态代码的 header。试试这个:
header("HTTP/1.1 200 OK");
结果比我想的要简单:
刚刚添加:
global $wp_query;
status_header( 200 );
$wp_query->is_page = true;
$wp_query->is_404=false;
先到 script.php 文件本身。