WordPressのfunctions.phpを少しだけカスタマイズしたい時、皆さんはどうしてますか?
僕の場合はレンタルサーバー上の本番環境でやっちゃってます。
でも、これって結構リスキーなんですよね。
ちょこっと間違えただけでFatal Errorでサイトが表示されない。
まあ、自分が悪いんですけどね。
かと言って、ローカルに開発環境を構築するのも面倒です。
そこで今回は、本番環境でも比較的安全にfunctions.phpをカスタマイズする方法をご紹介します。
やり方はとてもシンプルです。
ページを閲覧しているのがログインユーザーの場合のみ、テスト用のphpファイルを読み込むというものです。
こうすることにより、コードにエラーがあったとしても、サイトを訪れたユーザーにはエラー画面が表示されず、通常通りの画面が表示されます。
テスト用のphpファイルの作成及び読み込み
まずは、test.phpというテキストファイルを用意して、テーマフォルダにアップロードします。
続いて、functions.phpからそのファイルを読み込みます。
すべてのログインユーザーに対してtest.phpを読み込ませる場合は、次のコードを記入します。
require_once locate_template('test.php');
}
特定のユーザーに限る場合は、こうなります。
if( $user->get('user_login') == '◯◯◯') {
require_once locate_template('test.php');
}
test.phpに書いておくと便利なコード
上で紹介した方法でテスト用のファイルを分割したら、あとは自由にカスタマイズしていけばいいのですが、参考として、あらかじめtest.phpに記入しておくと便利なコードをご紹介します。
記事の冒頭に任意の値を表示するコード
the_contentにフックして、任意の値を記事冒頭に表示します。
もちろん、ログインユーザーにしか表示されません。
$val = '';
$content = $val . '<br>' . $content;
return $content;
});
ヘッダーとフッターに任意の値を表示するコード
ヘッダー用はこちらです。
echo $val;
});
フッター用はこれ。
echo $val;
});
ショートコード
ショートコードも用意しておくと便利です。
ただし、ショートコードの場合は、test.phpだけでなく、functions.phpにもコードを追加する必要があります。
まずは、functions.php。
次のコードを追加して、ログインユーザーの場合に限って、値を表示するようにします。
if( is_user_logged_in() ){
my_test_shortcode();
}
});
続いて、test.php。
echo $val;
}
まとめ
失敗すると焦りまくりのfunctions.phpのカスタマイズですが、このように簡易的なテスト環境を構築することで、比較的安全に作業を進めることができます。
手軽にできるので試してみてください。