SOTA-JP.COM

書評、WordPress、アフィリエイト、米国株投資

WordPressのテスト(開発)環境を手軽につくる方法

投稿日:2017年11月29日 更新日:

WordPressのfunctions.phpを少しだけカスタマイズしたい時、皆さんはどうしてますか?

僕の場合はレンタルサーバー上の本番環境でやっちゃってます。

でも、これって結構リスキーなんですよね。
ちょこっと間違えただけでFatal Errorでサイトが表示されない。
まあ、自分が悪いんですけどね。

かと言って、ローカルに開発環境を構築するのも面倒です。

そこで今回は、本番環境でも比較的安全にfunctions.phpをカスタマイズする方法をご紹介します。

やり方はとてもシンプルです。
ページを閲覧しているのがログインユーザーの場合のみ、テスト用のphpファイルを読み込むというものです。

こうすることにより、コードにエラーがあったとしても、サイトを訪れたユーザーにはエラー画面が表示されず、通常通りの画面が表示されます。

テスト用のphpファイルの作成及び読み込み

まずは、test.phpというテキストファイルを用意して、テーマフォルダにアップロードします。

続いて、functions.phpからそのファイルを読み込みます。

すべてのログインユーザーに対してtest.phpを読み込ませる場合は、次のコードを記入します。

if ( is_user_logged_in() ){
  require_once locate_template('test.php');
}

特定のユーザーに限る場合は、こうなります。

$user = wp_get_current_user();
if( $user->get('user_login') == '◯◯◯') {
  require_once locate_template('test.php');
}

test.phpに書いておくと便利なコード

上で紹介した方法でテスト用のファイルを分割したら、あとは自由にカスタマイズしていけばいいのですが、参考として、あらかじめtest.phpに記入しておくと便利なコードをご紹介します。

記事の冒頭に任意の値を表示するコード

the_contentにフックして、任意の値を記事冒頭に表示します。
もちろん、ログインユーザーにしか表示されません。

add_filter('the_content', function ($content) {
  $val = '';
  $content = $val . '<br>' . $content;
  return $content;
});

ヘッダーとフッターに任意の値を表示するコード

ヘッダー用はこちらです。

add_action('wp_head',function (){
  echo $val;
});

フッター用はこれ。

add_action('wp_footer',function (){
  echo $val;
});

ショートコード

ショートコードも用意しておくと便利です。

ただし、ショートコードの場合は、test.phpだけでなく、functions.phpにもコードを追加する必要があります。

まずは、functions.php。
次のコードを追加して、ログインユーザーの場合に限って、値を表示するようにします。

add_shortcode('my_test', function() {
  if( is_user_logged_in() ){
    my_test_shortcode();
  }
});

続いて、test.php。

function my_test_shortcode() {
  echo $val;
}

まとめ

失敗すると焦りまくりのfunctions.phpのカスタマイズですが、このように簡易的なテスト環境を構築することで、比較的安全に作業を進めることができます。

手軽にできるので試してみてください。