WordPress高速化/安全性のためfunctions.phpを管理画面用途と公開用に分けよう!
今回はfunctions.phpを管理画面とそれ以外で分けよう!というオススメ設定のお話です。簡単なので、すぐにでも分けることをオススメします^^
目次
重要:functions.phpは毎アクセス時に必ず呼ばれる!
functions.phpはwordpressの概念の中でも最重要なものです。なぜなら、常に呼ばれるからです。どんな時でも呼ばれます。ページを表示するときでも、管理画面にログインするときでも、プラグインの処理が走るときでも、、、必ずです。
だからこそ、とりあえずfunctions.phpに書いておけば何でも大丈夫なんですね。必ず呼ばれるから。何でも書けるから便利ですよね~
何でもかんでも1ファイルに書くのは良くない!
そもそもfunctions.phpに何でも書くのはよくないです。それは3つほどデメリットがあるからです。
欠点1:プログラムに無駄な処理をさせる
functions.phpは毎回必ず走ります。なので、「管理画面に新しいメニューを追加」「管理画面だけでしか使わない処理の起動」など全ての処理をやろうとするんです。公開ページであっても。これって無駄の極みですよね、、、一つ一つの処理は大したことないですが、累積すると重くなってきたりします。
欠点2:functions.phpでエラーがでたら、全てのページが見えなくなる
これはよく言われることですね。functions.phpになんでも書いていると、どこかでエラーがでたときに全てのページがみえなくなります。管理画面含めて。なので、functions.phpを元に戻せないと大変なことになります。これって安全じゃないですよね。
欠点3:メンテナンス性の低下。functions.php読みにくくなる!
最後にこれも重要ですね。なんでもfunctions.phpに書くと、表示ページのことや管理画面の設定もごちゃ混ぜになるので、わかりにくくなります。管理しにくくなりますね。
つまりfunctions.phpは↓のように、wordpress全部のプログラムに影響を与える危険なものなのです!
使う時だけ処理するようにしよう!管理画面用は別phpに分別しよう!
上記のようにfunctions.phpに何でも書くのは色々と問題があります。だからこそ、最低限、管理画面の設定は別ファイルで行うことをオススメします。functionsAdmin.phpみたいなのをつくり、そちらで定義を書くようにする感じ。
やり方は簡単です!
手順1:functions.phpに以下のコードを追加
こちらは簡単なコードですが、「管理画面として呼び出されたら、functionsAdmin.phpを読み込む」という意味です。こうしておくと、管理画面以外ではこの部分を無視してくれるんですね!
if (is_admin()){ include(STYLESHEETPATH . "/functionsAdmin.php"); }
手順2:functionsAdmin.phpに管理画面の定義を移す
新たにfunctions.phpと同じフォルダにfunctionsAdmin.phpを作成して下さい。そして、このfunctionsAdmin.phpに管理画面の定義を移せばいいだけです。
//管理画面登録などはここに記述 function add_adm_aindex() { include(STYLESHEETPATH . "/adm/aindex.php"); } function register_my_custom_menu_page() { add_menu_page('システム管理', 'システム管理', 'manage_options', 'aindex', 'add_adm_aindex', 'dashicons-welcome-learn-more', 3); } add_action( 'admin_menu', 'register_my_custom_menu_page' );
これだけで、functionsAdmin.phpは管理画面表示時しか読み込まれなくなります!これだと、functionsAdmin.phpをいじっても公開ページに影響ないから安心です!
まとめると↓こんな感じ。最小限の影響で済むようになります。
ということで、基本的なことですがこのようにfunctions.phpをわけておくことをオススメします!
⇒「WordPress関連TIPS」カテゴリ記事一覧
⇒「WordPress高速化」カテゴリ記事一覧
その他関連カテゴリ
↓WordPressでブログ始めるならエックスサーバーがおススメ!