https://t.co/i5ZtXYSOFS
WordPressでサイト作るときにWordPress本体とかプラグインとかのソースまでバージョン管理せざるを得ないのが嫌すぎたのでいい感じっぽいスケルトン作った。
— Takashi Kanemoto (@ttskch) 2014, 8月 2
WordPress.Skeleton
WordPress でサイトを作るときに自分のコードにフォーカスするためのスケルトン を作ってみました。よろしければ使ってみてください。
使い方
$ composer create-project wordpress/skeleton {project-name}
$ cd {project-name}
$ cp local-config-sample.php local-config.php
$ vi local-config.php # tailor to your environment
コンセプト
WordPress 本体のソースやプラグインのソースを自分のリポジトリでバージョン管理せずに、全て composer でインストールできるようになっています。
WordPress でサイトを作る場合、一般的にはそのサイトの資産は
- 自作したテーマのソースコード
- データベースの中身
- アップロードされたファイル
だと思うので、これらだけにフォーカスして管理ができるようにしたつもりです。(データベースとアップロードファイルは mysqldump/zip したものを定期的にコミットするような運用を想定してます。)
車輪の再発明ではないのか
WordPress のスケルトンと言えば、WordPress の中の人が作ってくれている markjaquith/WordPress-Skeleton が有名なようですが、試してみたところ以下の点に不満を持ちました。
composer create-project
でインストールできない- インストール時に
composer install
ではなくgit submodule init; git submodule update
しないといけない (直感的じゃないし WordPress/WordPress のファイル数が多くてべらぼうに時間がかかる) - wpackagist でプラグインをインストールすると (
content
じゃなく)wp-content
にインストールされてしまうので、自力でインストール先を変更しないといけない (これだけならディレクトリ名を変えるだけなのでコントリビュートしろって話ですが) content
が/wp/
の外にあるため、/wp/
をドキュメントルートにして使えない (URL に/wp/
って入っちゃう)define( 'WP_CONTENT_URL', 'http://' . $_SERVER['HTTP_HOST'] . '/content' );
ってやってるので、ドキュメントルート直下でしか動作しない (開発環境ではいちいち hosts とか vhost の設定するの面倒なのでサブディレクトリでも普通に動いてほしい)content/uploads
を別階層のshared
ディレクトリに symlink する運用が前提になっているけど、その辺はデプロイツール (capistrano) に任せればいいのでは
特に、URL に /wp/
が入っちゃう問題はめちゃめちゃクリティカルだと思うんですが、皆さんどうしてるんでしょう…?
とりあえずこの辺りの不満を解消できる形にしたつもりなので、使ってみて何かご意見があれば issue か PR をいただければ幸いです。
余談
markjaquith/WordPress-Skeleton を使ってみるまで知らなかったんですが、WordPress って一階層上までは wp-config.php
を探してくれるんですね。
https://github.com/WordPress/WordPress/blob/master/wp-load.php#L34
複数の WordPress を一括で設定できるように、っていうことなんでしょうか。