【问题标题】:Wordpress add_rewrite_rule Redirects without parameterWordpress add_rewrite_rule 不带参数的重定向
【发布时间】:2016-04-13 17:34:02
【问题描述】:

我想重定向一个自定义 URL,就像文档 here 中的示例一样

例如:http://domain.com/find/324http://domain.com/?text=324

这是代码,由于某种原因,它不断将我重定向到主页,而 URL 中没有参数“text”..

function custom_rewrite_basic() {
  add_rewrite_rule('find/(.+)/?', 'index.php?text=$matches[1]', 'top');
}
add_action('init', 'custom_rewrite_basic');

“文本”参数不是 WoprPress 函数中的构建,我将与我的自定义代码一起使用它。

我刷新了链接缓存,仍然在没有参数的情况下重定向到主页。

我错过了什么?

【问题讨论】:

  • 我相信你应该使用'find/(\d+)/?'(或'find/([^/]+)/?'),否则/会被.+吃掉。
  • @stribizhev Dosent 也适用于这些选项。

标签: php regex wordpress .htaccess redirect


【解决方案1】:

您不能直接添加自定义查询变量。必须使用 query_vars 过滤器添加自定义查询变量,以便在规则中进行解析。您可以添加自定义查询变量,如下所示。

function wpd_add_query_vars( $qvars ) {
  $qvars[] = 'text'; //I used the one in your example
  return $qvars;
}
add_filter( 'query_vars', 'wpd_add_query_vars' );

然后你会得到这样的查询变量:

get_query_var('text')

查看https://wordpress.stackexchange.com/questions/271931/add-rewrite-rule-parameter-is-not-received-by-the-page?rq=1了解更多详情。

【讨论】:

    猜你喜欢
    • 2012-08-26
    • 2016-06-23
    • 1970-01-01
    • 2012-03-23
    • 1970-01-01
    • 1970-01-01
    • 2014-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多