【发布时间】: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