ToruWordPress-Skeltonをローカルで試そうと思ったんだけど、何故かうまくいかない。そこでローカルにクリーンインストールしたWordPressに部分的に実装してみた。WordPress-Skeltonの仕組み全てを会社のWordPress環境には適用できないので、便利そうな部分のみ使ってみたテストの備忘録。local-config.phpを活用するwp-config.phpと同じディレクトリにlocal-config.phpを追加する。local-config.phpにはローカルで使うDB設定情報を記述する。);次に、wp-config.phpに記述されているDB設定情報を下記のように書き換える。これで、wp-config.phpと同じディレクトリにlocal-config.phpが存在すれば、ローカルのDBに接続される。テスト及び本番環境にはlocal-config.phpをアップロードしない。専用ディレクトリに配置するを参考に、WordPressのインストールを/wp/サブディレクトリへ移動する。手順はCodexで書かれているので基本OK。加えて:ステップ7で、.htaccessとindex.phpをルートディレクトリにコピーしますが、wp-config.phpとcocal-config.phpもルートに移動する。この2つはコピーではなく移動。config-sample.phpは/wp/ディレクトリに残しておいてOK。今回の僕の環境では、ステップ9の後でうまく表示されず、一度MAMPを再起動させると表示された。これで、下図のようになる。wp-contentを移動する次に、テーマ、プラグイン、アップロードファイルが保存されるwp-contentディレクトリを/wp/の外に出す。編集ではこう書いてある。'http://example/blog/wp-content');が、ここではWordPress-Skeltonの通りに記述してみる。これを、ルートのwp-config.phpに書き足す。);管理画面をリロードすると問題無く管理画面自体は表示される。Worldの投稿に画像をアップロードしてみる。画像は新しく作ったcontentディレクトリへ、設定通りアップされている。この段階ではwp-contentディレクトリの中身はまだ移動していないので、インストール時もしくはwp-contentを移動する前にインストールしたテーマやプラグインをWordPressが見つけられず「テーマが見つからない」「プラグインが見つかりません」などの警告がでる。言語ファイルも移動されていないので、日本語に設定してあっても英語で表示される。/wp/wp-content/の中にあるlanguages、plugins、themesを/content/へ移動する。それぞれのディレクトリにあるindex.phpも忘れずに移動。/wp/wp-content/の中身は削除してもしなくてもOKだと思う。今回は各ディレクトリとindex.phpのみ残し他ファイルは削除。管理画面に戻り、リロードすると、全てのプラグインとテーマが認識され、言語も日本語に戻る。必要であればプラグインは再度有効化をする。コアのテーマを活用するさっきのところで、themesの中身を移動せずに、コアに付いてくるテーマ(/wp/wp-content/themes/の中に入ってる)と、/content/themes/に中に入れたテーマ両方を使えるようにしてみる。することで、コアに付いてくるデフォルトとテーマをそのまま使ったり、それを親として、contentの中に子テーマを作ることもできる。/content/へ移動した中身を/wp/wp-content/へ戻す。WordPress-Skeltonからcontent/mu-plugins/の中身をそのまま使う。その中身はシンプルに、register_theme_directoryを使った1行が書かれているプラグインがあるだけ。Elevenの子テーマ、Humをインストールして有効化してみる。ディレクトリはどうなっているかと言うと、/wp/wp-content/themes/はこんな感じでデフォルトのまま。子テーマのHumは/content/themes/の中にインストールされている。(注:leafは別のテーマです)※プラグインディレクトリの指定には、どうもここまでフレキシブルな設定方法はないよう。なんの為にこんなことをするのか2つある。1つにはまずローカル開発環境のDB情報をテスト及び本番環境と分離させること。ここではlocal-config.phpとして分離させ、このファイルが存在すればローカル環境、無ければテストもしくは本番環境となる。「local-config.phpはサーバーにアップしない」はサイトが丸ごとgitで管理されていることを前提として、.gitignoreに設定しておけば自動化できる。しなくても、サーバーからファイルを1つ削除するのは編集するよりも簡単。1つは、WordPressのコアをその他のファイルと切り離すこと。しておけば、コアのみgitやSVNでアップデートとかできるし、バックアップも/wp/以外でOK(なはず)。wp-config.phpをWordPressのインストールディレクトリの1つ上に置くのはセキュリティ対策として知ってはいたが、こういう使い方をするのは関連記事を初めて読んだ時はちょっと驚いた。あと、定数の設定もこちらの記事とは少し違っていて勉強になる。GitHub実用化まずはlocal-config.phpの仕組みはすぐに使えそう。加えて開発用に定数を設定する技を組み合わせるともうちょっとベターなローカル⇒テスト⇒本番の開発フローが作れるかも。contentsを外に出すのはシンプルなセットアップであれば大きな問題はなさそうではある。