Wordpress add_rewrite_rule 无法进入匹配项[1] [英] Wordpress add_rewrite_rule can't get inside matches[1]
本文介绍了Wordpress add_rewrite_rule 无法进入匹配项[1]的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在 Wordpress 中编写了重写规则,但它无法返回匹配项[1]:
I wrote a rewrite rule in Wordpress but it can't return matches[1]:
add_rewrite_rule( 'stage/shop/([^/]+)/?', "index.php?category_name=$matches[1]", 'top' );
但是当我在纯 php 上尝试它时,它返回正确的东西:
But when I try it on pure php it return right thing:
preg_match_all('#stage/shop/([^/]+)/?#','stage/shop/audio-and-video-equipment/',$matches);
var_dump($matches[1]);
这是我的完整代码:
add_action( 'init', 'wpst_init_internal' );
function wpst_init_internal()
{
add_rewrite_rule( 'stage/shop/([^/]+)/?', "index.php?category_name=$matches[1]", 'top' );
}
add_filter( 'query_vars', 'wpst_query_vars' );
function wpst_query_vars( $query_vars )
{
$query_vars[] = 'category_name';
return $query_vars;
}
我的代码有问题吗?
更新:
在我的查询中,category_name 必须返回匹配项[1],但没有返回任何内容.这是我的转储:
In my query, category_name must return the matches[1] but that's return nothing. It's my dump:
["category_name"]=>
string(0) ""
推荐答案
我解决了我的问题:我在 WordPress 中启用调试模式.然后我得到 Undefined variable:matches
错误,它是双引号的原因,规则应该是单引号.
I fix my problem:
I enable debug mode in WordPress.
Then I get Undefined variable: matches
error, it cause of double quote, the rule should be in single quotes.
这篇关于Wordpress add_rewrite_rule 无法进入匹配项[1]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文