次のような状況があります。サブディレクトリにWP Multisiteがインストールされています。
my-domain.com/subfolder/wp-multisite-root
通常、次に追加されるサイトはそのように作成されます。
my-domain.com/subfolder/wp-multisite-root
my-domain.com/subfolder/wp-multisite-root/site1
my-domain.com/subfolder/wp-multisite-root/site2
my-domain.com/subfolder/wp-multisite-root/site3
このように作成する方法はありますか?
my-domain.com/subfolder/wp-multisite-root
my-domain.com/subfolder/site1
my-domain.com/subfolder/site2
my-domain.com/subfolder/site3
もう1つトリックがあります。 my-domain.com/subfolder/には、他のワードプレス以外のアプリケーションが含まれています。
これらの年後、私はこれがあなたの質問にまだ答えられることを願っています...
私はあなたが望む状況でうまくいったと思います。私はWordpressを '/ subfolder /'にインストールしていませんが、言語ごとに同じサブディレクトリにインストールしています。
my-domain.com/nl/ -> this is primary installation, site id = 1
my-domain.com/en/ -> this is the first site created by multistie, site id = 2
my-domain.com/de/ -> this is the second site created by multistie, site id = 3
データベースに少々の「ハッキング」が必要ですが、とても簡単です。
ステップ1: /あなたのマルチサイトの 'root'インストールがそのサブディレクトリで意図したとおりに動作していることを確認してください。私の場合は、「wp-config.php」に次のように書いています。
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false); // allow sub-directory install (true for subdomain install)
define('DOMAIN_CURRENT_SITE', 'my-domain.com/subfolder');
define('PATH_CURRENT_SITE', '/wp-multisite-root/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
(実際には、 '/ subfolder'はありません:)
ステップ2: サブフォルダー内のマルチサイトを通じて最初の新しいサイトを作成します。 「site2」というフォルダ名を入力すると、Wordpressはそれが次のように作成されることを通知します。
ステップ3: / phpMyAdmin/directAdminを開く表wp_blogs
で、あなたが新しく作成したサイトのエントリを編集します。それのpath
を修正しなければなりません。これは次のようにして行うことができます。
UPDATE `wp_blogs` SET `path` = '/site2/' WHERE `wp_blogs`.`path` = '/wp-multisite-root/site2/';
それに応じてドメイン名とサイト名を変更してください。そこに記載されているサイトIDも探してください。最初の追加サイトが作成された場合、それは私の紹介のようにID 2になります。
ステップ4: テーブルwp_<SITEID>_options
を調べます。サイトID 2の場合、それはwp_2_options
になります。そこで、option_value
が 'siteurl'と 'home'であるoption_name
を変更する必要があります。これは、次のクエリを実行することによって実行できます。
UPDATE `wp_2_options` SET `option_value` = 'my-domain.com/subfolder/site2/' WHERE `option_name` = 'siteurl';
UPDATE `wp_2_options` SET `option_value` = 'my-domain.com/subfolder/site2/' WHERE `option_name` = 'home';
この場合も、ドメインとフォルダの名前をそれに応じて変更します。 URLから「wp-multisite-root」が削除されているので、site2は「wp-multisite-root」と同じレベルになります。
ステップ5: / wp-adminを更新すると、あなたのサイトがあなたが望むようにリストされます。
Piemolの答えは素晴らしく、私のために働きました。しかし、私はメインサイトを除いて私のサイトのどれにもログインすることができませんでした。私のクッキーを調べたところ、私はWordPressが私のメインサイトだけにクッキーを作っていて、他のサブディレクトリにはクッキーを作っていなかったことを発見しました。 OPの例を使うために、それは/subfolder/wp-multisite-root
のためにクッキーを作っていました、それは/subfolder/site1
が使うことができませんでした。
私は修正する必要があるものを見るためにWordPressコアを通して掘り下げました、そして私はクッキーに使用されるパスを修正するために私のカスタムプラグインにこのコードを追加することになった:
define('COOKIEPATH', '/subfolder');
define('SITECOOKIEPATH', '/subfolder');
私の場合、私のサイト構造は実際にはPiemolのものと同じなので、私は自分のクッキーパスをルートになるように修正しました:
define('COOKIEPATH', '/');
define('SITECOOKIEPATH', '/');
最も簡単な解決策は、my-domain/subfolder/
をWordPressのインストールディレクトリとベースURLにしてから、サブディレクトリを使用するように設定されたマルチサイトを有効にすることです。