WordPress 多言語サイト作成手順

wp-config.phpをバクアップ

wp-config.php に追記
/ 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 / よりも上に次の行を追加します。

define ('WP_ALLOW_MULTISITE', true);

この後マルチサイトを作るためにサイトネットワークの作成をしていくのですが、プラグインが有効になっていると失敗する可能性があるので、 プラグインは全て無効化 させておきます。

サイトurlの変更 https://にしておく

f:id:happy_teeth_ago:20200815203713j:plain

「ツール」のメニューの中に「サイトネットワークの設定」という項目を選択します

f:id:happy_teeth_ago:20200815133744j:plain:w300

注意 サブドメイン型とサブディレクトリ型を調査しておくこと!

x-serverはサブディレクトリ型 ロリポップはサブドメイン型 これ間違うと、はじめからやり直しになる。 f:id:happy_teeth_ago:20200815142747j:plain

パーマリンクをカスタム設定にしておく

f:id:happy_teeth_ago:20200816173238j:plain

wp-configに追加 管理画面に出てくるものをコピペする

f:id:happy_teeth_ago:20200815135415j:plain

define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', 'happynote.biz');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

生成された mod_rewrite ルールを .htaccess ファイルに追加します。

WordPressの既存のmod_rewriteルールがある場合は置き換えます。

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]

ちなみにXserverではこうなります

SetEnvIf Request_URI ".*" Ngx_Cache_NoCacheMode=off
SetEnvIf Request_URI ".*" Ngx_Cache_StaticMode
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>



SetEnvIf Request_URI ".*" AllowCountry
SetEnvIf Request_URI ".*" AllowRestApi

# BEGIN WordPress
# `BEGIN WordPress` から `END WordPress` までのディレクティブ (行) は
# 動的に生成され、WordPress フィルターによってのみ修正が可能です。
# これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。
<IfModule mod_rewrite.c>
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).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
</IfModule>
# END WordPress

ログアウトして、再度ログインします

f:id:happy_teeth_ago:20200815140008j:plain

キャッシュが残っていると、リダイレクト地獄に入るので、シークレットモードでログインします。

f:id:happy_teeth_ago:20200815204402j:plain:w300

サイトを追加します

f:id:happy_teeth_ago:20200815205049j:plain

あとは言語ごとに、テーマ等を設定します。テーマ、プラグインはサイトネットワーク管理者のみがインストールできます。

サイトネットワーク管理者がadmin権限になります。