WordPress 案件に遭遇して初めて一から WordPress を構築したので知見をメモ。
構築にあたっては下記記事を参考にしました。
Bedrock は WordPress における Web サイト開発をモダンにし、設定管理を簡単にし、いい感じのフォルダ構成を提供してくれるボイラープレートです。
インストール
まずは composer でインストール。
composer create-project roots/bedrock ./wordpress
Folder Structure | Bedrock Documentation | Roots の通りにいい感じのフォルダ構成を作ってくれます。
WordPress 本体は web/wp
に入っていて、このフォルダ内のファイルは一切編集しません。
WordPress のカスタマイズは web/app
フォルダ内で行います。
WordPress 本体の日本語化
composer.json に下記を追記して composer でインストール。
{ "repositories": [ { "type": "composer", "url": "https://wp-languages.github.io" } ], "extra": { "dropin-paths": { "web/app/languages/": ["vendor:koodimonni-language"], "web/app/languages/plugins/": ["vendor:koodimonni-plugin-language"], "web/app/languages/themes/": ["vendor:koodimonni-theme-language"] } } }
composer require "koodimonni-language/ja:*"
wp-config.php
設定は Configuration Files | Bedrock Documentation | Roots に書いてあるとおり、一般的な WordPress の wp-config.php
が config/application.php
に該当します。
ですが、config/application.php
は基本的に変更する必要がありません。
config/application.php
内には env()
で定数を定義しているものがあります。
.env
も用意されていて、DB_NAME や DB_HOST を記述すればその値が利用されます。
.env
で少し説明が必要そうなのは下記の 3 点ですかね。
項目 | 説明 |
---|---|
WP_ENV |
開発・ステージング・本番 などの環境を設定。config/environments 内の設定値と同名のファイルが読み込まれる。つまり、 development を設定すると config/environments/development.php の設定が有効になる。 |
WP_HOME |
WordPress 設定画面の サイトアドレス にあたる設定 |
*_KEY , *_SALT |
各キーとソルト。 https://roots.io/salts.html にアクセスすれば自動生成してくれるのでコピペすれば良い。 |
WordPress の初期設定
ブラウザで WordPress にアクセスして初期設定します。 これは多分一般的な WordPress の初期設定と同じだと思います。
カスタマイズ
画面表示に関するカスタマイズはテーマ内の function.php
に、管理画面や機能のカスタマイズはプラグインとして実装していくのがいい感じに分離できそう。
プラグイン
WordPress Packagist を利用してプラグインも composer でインストールします。
web/app/
内には mu-plugins
と plugins
のフォルダがあります。
フォルダ | 役割 |
---|---|
mu-plugins | Must use の名の通り必須プラグイン |
plugins | 有効無効を切り替えられるプラグイン composer でプラグインをインストールするとこちらのフォルダに入る |
mu-plugins
には Bedrock のプラグインプリインストールされています。
変更しないようにしましょう。
コーディングルールについて
WordPress には HTML, CSS, JS, PHP のすべてに対して コーディング規約 があります。 ですが、インデントをタブにしろだの、ヨーダ記法を使用しろだの、全体的に古めかしい規約なので基本的には使いません。
PHP に関しては Bedrock が PSR2 ベースの phpcs.xml
を用意してくれているのでこれを使いましょう。
CSS と JS は Prettier で好きなルールを作ればいいと思います。
おわり
カスタマイズのために WordPress 本体のソースを変更しなくてよい設計になっているので、それだけで Bedrock を利用する根拠になると思います。
プラグインも composer で追加できるし、設定も .env
で分離できるしいいことづくしです。
あとは、管理画面から行う設定を WP-CFM でエクスポートできるようにしておくと、設定のが DB に依存しなくなるので更に楽になります。 これはたぶんそのうち記事にします。