サポート » マルチサイト » 他の子サイトの下の階層に別の子サイトをつくりたい

  • 解決済 kzyz

    (@kzyz)


    既に子サイト「/aaa/」の下の階層に別の子サイト「/aaa/bbb/」を作成したいのですが、
    サイト設定のパスに「/aaa/bbb/」のように入れると、
    ダッシュボードにも行けなくなってしまいます。
    階層がおかしくなってしまうからだとは思うのですが、
    なにか解決方法はあるでしょうか?

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • モデレーター jim912

    (@jim912)

    kzyzさん

    .htaccess とどの子サイトかを判別する wp-includes/ms-settings.php のロジックは基本的に1階層のみ有効な記述になっています。

    この2つを、1階層でも2階層でも有効に動作するように改変すれば、もしかしたら動くかもしれません。

    ただし、WordPressの動作原理をよく理解しておかないとかなり難しいかと思います。

    トピック投稿者 kzyz

    (@kzyz)

    jim912さん

    情報ありがとうございます。
    こちらでもいろいろ情報を探していたら、同じ悩みを抱えている方も多いようで、
    英語のサイトに解決できそうな情報をみつけました。
    WordPress Hacks: Nested Paths For WPMU Blogs

    ただWordPress MUが対象のようでsunrise.phpは少し修正が必要でした。

    まず3行目

    $current_site->domain = $domain = DOMAIN_CURRENT_SITE;

    $domain = DOMAIN_CURRENT_SITE;
    $current_site->domain = $domain . '/';

    33行目

    $current_site->site_name = ucfirst( $current_site->domain );

    $current_site->site_name = ucfirst( rtim( $current_site->domain, '/' ) );

    のように変えないと、network_site_urlの返り値がおかしくなります。

    あと10行目と11行目の間に

    if ( !in_array( 'network', $patharray ) ) {

    24行目と25行目の間に

    }

    で囲って条件分岐をしてあげないと、
    サイトネットワーク管理がリダイレクトのループで開けなくなります。

    そしてコメント欄にもあるのですが、全体を<?php ?>で囲むのを忘れがちです(笑)

    あとは、コメント欄の情報を参考に.htaccessの

    RewriteRule  ^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*) $1 [L]

    RewriteRule ^([_0-9a-zA-Z-]+/)+(wp-(content|admin|includes).*) $2 [L]

    に変えてあげることで自分の環境ではうまく動きました。

    ただ他にも不具合がある可能性も否めないので、
    あくまで参考まで。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「他の子サイトの下の階層に別の子サイトをつくりたい」には新たに返信することはできません。