我正在努力使用 WP add_rewrite_rule 并喜欢任何反馈和帮助。
我的类别页面是:
- 类别/猫名1
- 类别/猫名2/
我的产品页面是:
- 类别/产品/产品名称1
- 类别/产品/产品名称2/
由于默认的 WP 重写规则与对类别和产品使用相同的 pemalink 基础存在冲突,因此我试图解决这个问题。
我能够删除所有产品类别规则并希望添加一个新规则,其中 URI 以“类别”开头但其中没有“产品”字符串。我认为我得到了正确的重写规则并且它捕获了它,但是$matches[1]始终为空并且不转发实际的类别名称。
add_action('init', function(){
add_filter('product_cat_rewrite_rules', '__return_empty_array');
add_rewrite_rule('category\/(?!product).*\/?$', 'index.php?tester=$matches[1]', 'top');
}, 10, 0);
function custom_rewrite_tag( $vars ) {
add_rewrite_tag( '%tester%', '([^&]+)');
}
add_action( 'init', 'custom_rewrite_tag');
当我打印出该页面的 query_vars 时,我总是得到:
Array ( [tester] => )