【问题标题】:Generate Rewrite Rule for Custom Taxonomy为自定义分类生成重写规则
【发布时间】:2014-10-04 00:38:29
【问题描述】:

我想为自定义分类和自定义帖子类型添加新的重写规则,但我被正则表达式卡住了。

add_filter( 'generate_rewrite_rules', 'my_custom_rewrite_rules');
    
function my_custom_rewrite_rules($orules){
        $rules = array ();
        $rules['([^/]+)(/[0-9]+)?/?$'] = 'index.php?city=$matches[1]&store=$matches[2]&page=$matches[3]';
        $rules['page/?([0-9]{1,})/?$'] = 'index.php?city='.$this->slug.'&paged=$matches[2]';
        $rules['$'] = 'index.php?city='.$this->slug;
return $rules + $orules->rules;

但是当我尝试访问以下 URL 时,我收到错误 Page Not Found

http://new-york.site[.]com/my-store/

但这有效:

http://site[.]com/new-york/my-store/

当我将函数与以下内容挂钩时,上述示例非常适合默认帖子和默认类别: post_rewrite_rules
category_rewrite_rules 分开。

注意:

'city' 是自定义分类蛞蝓。

'store' 是自定义帖子类型 Slug。

另外考虑我通过使用 '$this->slug' 得到了正确的 Slug

知道我错过了什么吗?如果您需要更多详细信息来回答此问题,请随时提出,我们将不胜感激

【问题讨论】:

  • 您是否保存了永久链接设置?
  • 是的,它有像 WooCommerce 一样的自定义基础。 /store/%city%
  • 抱歉刚刚看到什么失败了,new-york.site[.]com/my-store 这指向一个子域?您不能使用 wordpress 重写规则来处理子域,它仅适用于您的站点名称之后的内容。您可以在您的 htaccess 文件中执行此操作。
  • 感谢您的回复,它与 rewrite_rule_array 一起工作,实际上与其他挂钩我已经重写了 URL,它现在是 WordPress 需要理解我的请求,它与 rewrite_rules_array 一起感谢您的快速响应无论如何. :)

标签: url-rewriting wordpress url-rewrite-module


【解决方案1】:

我没有使用 generate_rewrite_rules

rewrite_rules_array

add_filter( 'rewrite_rules_array', 'my_custom_rewrite_rules');

function my_custom_rewrite_rules($orules){
        $rules = array ();
        $rules['([^/]+)(/[0-9]+)?/?$'] = 'index.php?city=$matches[1]&store=$matches[2]&page=$matches[3]';
        $rules['page/?([0-9]{1,})/?$'] = 'index.php?city='.$this->slug.'&paged=$matches[2]';
        $rules['$'] = 'index.php?city='.$this->slug;
return $rules + $orules->rules;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-28
    • 1970-01-01
    • 1970-01-01
    • 2017-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-09
    相关资源
    最近更新 更多