WordPressの本番環境でデバッグする変態プログラマの鏡みたいな人がここにいます。
そうです私がその意識低い系の怠慢エンジニアです。
今回は、WordPressの本番環境にサンドボックスを設置し、そこでリリース前の事前テストやデバッグを行うという、誠に型破りな運用テクニックを紹介していきたいと思います。
本番環境と同質の仮想マシン上での開発とか、releaseブランチのデプロイとか、そういう意識の高い運用はもうお腹いっぱいなので、みんなもウチと同じようにMacやWindowsで開発したコードをLinuxの本番環境へと豪快にブチ込んでいこう!
当運用テクニックは、あくまで弱小個人サイトでの利用を想定したものです。大規模サイト・商用システム等での利用は想定しておりません。
やること自体は単純です。
非公開の固定ページを作り、その固定ページ用のphpファイルを作成するだけです。
当テクニックではあくまで固定ページに基づくテストのみが行えます。システム全体の統合テストや、投稿ページ・カテゴリーページに関連した本格的なテストを想定するものではない点に留意してください。
固定ページの作成
管理画面より「固定ページ → 新規追加」で固定ページの作成画面に遷移します。
ページの内容には適当なものを入力しても構いませんが、今回は例として次のように入力しました。
記事のタイトル | サンドボックス |
---|---|
記事の本文 | これは本番環境のテストページです。 |
スラグ | sandbox |
スラグはタイトル入力後に自動生成される「パーマリンク」項目より「編集」で任意の値に変更することができます。または画面内下部に表示されている「スラグ」という専用の欄で変更できる場合もあります。表示されていない場合は、画面上部の「表示オプション」より「スラグ」にチェックを入れることで、「スラグ」欄が出現します。
スラグは後の作業で利用します。スラグの代わりに投稿後の「ページID」を利用することもできます。
最後に、画面内の「公開」欄で「公開状態」を「非公開」に選択し、「公開」ボタンを押下します。
phpファイルの作成
利用しているテーマのディレクトリに「page-sandbox.php
」という名前のファイルを作成します。
例:/htdocs/wp/wp-content/themes/marycore/page-sandbox.php
前回作成した固定ページのスラグに任意の名前を指定した場合には「page-任意の固定ページのスラグ.php
」という規則でページを作成してください。スラグの代わりにページIDを利用することも可能です。
パーマリンク設定を「基本」に設定している場合も同様に、ページIDをスラグとして利用することができます。固定ページのURLに示された数値が、そのページIDに相当するものです(例:http://localhost/?page_id=9
であれば9
がページIDとなり、よってpage-9.php
というファイルを作成することが可能となる)。
phpファイルの編集
作成した「page-sandbox.php
」にテストしたいコードを記述します。
ファイルの編集方法についてですが、WordPressの管理画面より「外観 → テーマの編集」でオンライン編集が可能となっています。
ファイルは一般的なページ・テンプレート(page.php等)と同等のものとして扱われます。
そのためwp_head()
やthe_title()
でヘッダー情報やページ情報を表示することも可能となります。
エラーを表示したい場合には、コードの先頭に「error_reporting(E_ALL);
」を追加することで、あらゆるエラーを確認することも可能になります。
/htdocs/wp/wp-content/themes/marycore/page-sandbox.php
<?php
// デバッグ用にエラーを全て表示する
error_reporting(E_ALL);
// function.php に追加する予定のコード
add_filter('the_content', function ($s) {
return $s . '<p>...という夢を見たんだ。</p>';
});
// 必要に応じてcssやその他のヘッダーを読み込む
get_header();
// 実際に目的の動作を確認する
while (have_posts()) { the_post(); get_template_part('content'); }
ブラウザの表示結果:http://localhost/sandbox/
サンドボックス
これは本番環境のテストページです。
...という夢を見たんだ。