我正在为Wordpress开发一个插件,该插件利用了自定义的永久链接。
我这样使用add_rewrite_rule()
:
add_rewrite_rule('^collection/sku/([^/]+)/?$', 'index.php?pagename=single_item&sku=$matches[1]', 'top');
当我转到/collection/sku/123
之类的URL时,它显示正常,但是我在检查器中注意到它返回404状态。我以前从未见过这种情况,我有点困惑如何获取404,但仍然显示似乎没有问题的页面。
使用Facebook调试器,我得到相同的结果。它说有一个404响应代码,但仍会抓取所有信息。
我确实在初始化过程结束时致电flush_rewrite_rules()
。
答案 0 :(得分:0)
我遇到了同样的问题,经过大量研究后我发现了一个解决方案,也许不是正确的解决方案,但它可以工作,现在返回200状态代码而不是404。
在为我添加的页面返回正确模板的函数中:
status_header(200);
整个示例:
add_filter('template_include', 'include_template');
public function include_template( $template )
{
$page = get_query_var('pagename');
if ( $page == 'participantes')
{
status_header(200);
return trailingslashit( dirname( __FILE__ ) ) . 'page-participantes.php';
}
return $template;
}