我想为自定义分类和自定义帖子类型添加新的重写规则,但我坚持使用正则表达式。
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;
但是当我尝试访问以下网址时,我收到错误找不到网页
http://new-york.site[.]com/my-store/
但是这个作品:
http://site[.]com/new-york/my-store/
以上示例在我使用以下函数挂钩时,对默认帖子和默认类别完美地工作:
post_rewrite_rules
category_rewrite_rules 分开。
'城市'是Custom Taxonomy Slug。
'存储'是Custom Post Type Slug。
还可以考虑使用' $ this-> slug'
来获得正确的Slug所以我知道我错过了什么?如果您需要更多细节来回答这个问题,请随时提出,任何帮助将不胜感激
答案 0 :(得分:0)
而不是使用我使用的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;