WordPressでのサイト制作で、多言語サイトを作ったので、やり方をまとめておきたいと思います。
WordPressでマルチサイト化する
「wp-config.php」に、マルチサイト化にする記述をします。
define( 'WP_ALLOW_MULTISITE', true );
/* 編集が必要なのはここまでです ! WordPress でのパブリッシングをお楽しみください。 */ の手前までに記載します。
WordPressの管理画面「ツール」に「ネットワークの設定」が追加されているのでアクセスし、WordPressの指示に従い、「wp-config.php」に追記、「.htaccess」にコピペします。
ダッシュボードの左上に「参加サイト」と表示されていればマルチサイト化成功です。
サイトネットワーク管理にアクセスできなかった場合の解決方法
結論から言うと、ルートの「.htaccess」を変更したらアクセスできるようになりました。
WordPressを置いているディレクトリ
https://mmmdesign.jp/wp2023
サイトのアドレス(ルートディレクトリ)
https://mmmdesign.jp/wp2023/
としています。ルートディレクトリの.htaccessを変更することがポイントです。
元々のリダイレクト用の記述のある.htaccessがありますが、まるっと上書きしました。
元々の.htaccessの内容
BEGIN WordPressBEGIN WordPress
からEND WordPress
までのディレクティブ (行) は 動的に生成され、WordPress フィルターによってのみ修正が可能です。 これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。 RewriteEngine On RewriteBase /wp2020/ RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /wp2020/index.php [L] END WordPress
これを下記に差し替えました。
RewriteEngine On RewriteBase / RewriteRule ^index.php$ - [L] add a trailing slash to /wp-admin RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L] RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).) wp2020/$2 [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(..php)$ wp2020/$2 [L] RewriteRule . index.php [L]
プラグイン「Multisite Language Switcher」をインストール
プラグインから「Multisite Language Switcher」をインストールし、有効化します。
片方の子サイトの言語を英語に設定する
参加サイト>サイトネットワーク管理>ダッシュボードにアクセスし、サイドバーの「サイト」から「新規追加」で必要なサイトを追加していきます。
マルチサイト化したサイトが「参加サイト」に表示されない
設定>マルチサイト言語スイッチャーから
ブログ言語を英語にし、更新をクリック
管理画面だけ日本語にする
ユーザー設定から、プロフィールの言語を「日本語」にすると、管理画面だけ日本語になります。