我目前正在处理一个项目,该项目要求具有指向相同内容的多个路径。该项目将有4个不同的品牌,为了便于讨论,我们将这些品牌称为brand1、brand2、brand3和brand4。
愿望是为WordPress生成重写规则,以便以下所有内容都能工作:
http://primaryurl.com/page-1
(品牌1是基本URL)http://primaryurl.com/brand2/page-1
http://primaryurl.com/brand3/page-1
http://primaryurl.com/brand4/page-2
这也适用于现有的任何自定义帖子类型、帖子等。
我已经深入研究了WP_Rewrite
,但还没有完全弄清楚如何解决这个挑战,我觉得我可能只是错过了一些东西。
我相信这可以通过大量的add_rewrite_rule()
调用来实现,但我觉得必须有更好的方法。
提前感谢您对如何解决这一问题的任何建议。
我最终用以下方法解决了这个问题:
$brands = array( 'brand2','brand3','brand4' );
add_action( 'generate_rewrite_rules', function( $wp_rewrite ) {
global $brands;
$new_rewrite_rules = array();
foreach ($brands as $brand) {
foreach ($wp_rewrite->rules as $regex => $redirect) {
$new_rewrite_rules[$brand . '/' . $regex] = $redirect;
}
}
//All rewrite rules are expected to be set at this moment
$wp_rewrite->rules = array_merge($new_rewrite_rules, $wp_rewrite->rules);
} );