将辅助根URL添加到WordPress重写


Adding a Secondary Root URL to WordPress Rewrites

我目前正在处理一个项目,该项目要求具有指向相同内容的多个路径。该项目将有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);
} );