Wordpress add_rewrite_rule 无法进入匹配项[1] [英] Wordpress add_rewrite_rule can't get inside matches[1]

查看:23
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆