WordPressマルチサイトについては、Naibaは何度も聞いたことがあります。最近研究
NaibaのテーマDEMOこのサイトではマルチサイト機能を使用しているため、ここではWordPressでマルチサイトを構築する具体的な手順と方法を記録・共有します。 本文で説明されていない点については、
公式ドキュメント。
WordPressマルチサイト紹介
通常、WordPressサイトを構築する場合、一般的な操作手順は次のとおりです:仮想ホストの追加、ドメインのバインド、インストールパッケージのアップロード、データベースの作成、WordPressのインストール 一方、WordPressマルチサイト(サブディレクトリモード)では、次の手順のみが必要です:マルチサイトモードの有効化、新規サイトの追加 サブドメインモードのマルチサイトの場合は、ドメインのバインドがもう1つ追加されるはずです。これも通常のインストール方法よりも迅速で、複数のサイトを一度に作成する必要がある人に適しています。 これらのマルチサイトは、メインサイトのデータベース、テーマファイル、プラグインファイルを共有します。メインサイトにあるリソースはすべて、サブサイトで直接使用できるため、テーマやプラグインを繰り返しインストールする手間が省けます。 同時に、マルチサイトのユーザーデータも相互に接続されており、アップグレードもメインサイトのみをアップグレードすれば、他のサブサイトは自動的にアップグレードされます。
WordPressマルチサイト有効化チュートリアル
この記事はWordPress 5.2に基づいて作成されています。
まず、マルチサイトを有効にするWordPressサイトの設定ファイルwp-config.phpに、このコード行を追加します。
define('WP_ALLOW_MULTISITE', true);
コードを'/* That's all, stop editing! Happy blogging. */'という行の前の行に追加します。 次に、サイトの管理画面を更新すると、以下の図のようにネットワーク設定のオプションが表示されます。

サブドメインとサブディレクトリから選択できます。必要に応じて選択してください。
サブドメインとは、1つのサイトが1つのドメインに対応することを意味します。Naibaはサブドメイン形式をテストしていません。また、他のドメインをバインドしたい場合は、
このチュートリアルを参照してください。 サブディレクトリは、現在のドメインの後にフォルダを追加する形式です。例えば、NaibaのテーマDEMOでは、1つのサブディレクトリで1つのテーマをデモンストレーションしています。 インストール後、以下のコードをコピーして設定ファイルwp-config.phpに追加する必要があります。前に追加したコードの次の行に追加します。

WordPress管理画面を再度更新すると、サイトオプションが表示されます。
WordPressマルチサイトのNginxの擬似静的(リライト)ルールはここにはありません。Apacheのものしかありません。Nginxの擬似静的ルールについては、後ほどNaibaが共有します。

新しいサイトを追加し、対応する情報を入力して追加するだけです。プラグインを有効にしている場合は、すべてのプラグインを手動で無効にする必要があります。

WordPressマルチサイトNginx疑似静的ルール
追加が完了したら、先ほど追加したサブサイトにアクセスすると、ページのレイアウトが崩れていることがわかります。これは、擬似静的ルールがまだ追加されていないためです。擬似静的ルールを追加すれば解決します。

現在Naibaが使用しているWordPressマルチサイトのNginx擬似静的ルールは以下の通りです
# wordpress固定链接设置
try_files $uri $uri/ /index.php?$args;
# 管理面板添加斜杠
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
# 传递上传文件给 wp-includes/ms-files.php
rewrite /files/$ /index.php last;
# 重写多站点 '.../wp-.*' and '.../*.php'.
if (!-e $request_filename) {
rewrite ^/[_0-9a-zA-Z-]+(/wp-.*) $1 last;
rewrite ^/[_0-9a-zA-Z-]+.*(/wp-admin/.*\.php)$ $1 last;
rewrite ^/[_0-9a-zA-Z-]+(/.*\.php)$ $1 last;
}別のルール
#ignored: “-” thing used or unknown variable in regex/rew
rewrite ^/([_0-9a-zA-Z-]+/)?wp-admin$ /$1wp-admin/ permanent;
if (-f $request_filename){
set $rule_2 1;
}
if (-d $request_filename){
set $rule_2 1;
}
if ($rule_2 = "1"){
#ignored: “-” thing used or unknown variable in regex/rew
}
rewrite ^/([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) /$2 last;
rewrite ^/([_0-9a-zA-Z-]+/)?(.*.php)$ /$2 last;
rewrite /. /index.php last;
コメントは終了しました
この記事のコメント機能は終了しています。ご質問がある場合は、他の方法でお問い合わせください。