WordPress を Bedrock で構築する

WordPress 案件に遭遇して初めて一から WordPress を構築したので知見をメモ。

構築にあたっては下記記事を参考にしました。

qiita.com

BedrockWordPress における 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 に書いてあるとおり、一般的な WordPresswp-config.phpconfig/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-pluginsplugins のフォルダがあります。

フォルダ 役割
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 に依存しなくなるので更に楽になります。 これはたぶんそのうち記事にします。