functions.phpを編集しない安全な方法とBLOG高速化のTIPS

子テーマにある functions.phpの編集の危険性
普通の人はfunctions.phpは触りません。
万が一変なスクリプト書き込んで失敗すると最悪WordPressの画面が真っ白とか
結構やばいから触らないほうが無難です。
でも触らなければ達成できない事もあるのでそういう場合のお話です。
安全にやる方法はないかなー
私は普通にがんがん functions.phpさわっている人なんですが
複数の機能を記述すると機能をON/OFFしたりするのも結構めんどくさいのですよ。
たとえば実験的な機能を追加してるときには自分は動作確認したいけど
一般の方にはまだ動作させたく無い場合とか運営者限定で動作させたい場合とか
if (current_user_can('administrator')) : // ここに実験用のコードを書く endif;
みたいな構文を仕掛けておかねばならなかったり機能自体を一時的にOFFにする場合はREM文にしたり
まぁ複数記述してそれなりに長い構文だったりするとうっかりBUGった記述を
稼働させて真っ青になるなんて事も往々にあるわけです。
なんかfunctions.php周りでいいプラグインないかなーと色々探してみると
やはり同じこと考えてプラグイン作るエライ人がいるもので
今回私の思った通りのプラグインを見つけましたのでご紹介。
その名もCode Snippets
プラグインの新規インストールでこの名前で検索すると1発で出てきます。
インストールは普通にプラグインのインストールと同じで特に難しくありません。
このプラグインは何ができるのかというと
- functions.phpに記述してたコードを一意に管理できる
- 記述した機能をプラグイン上から手軽にON/OFF可能
- 前述したように動作もadmin限定に即セットできる
つまり直接エディターでREM文にしたり admin限定条件をつけたり外したりみたいな時の
typoミスみたいなくだらないミスでBUGるリスクの軽減にとても役に立つということ。
うっかりBUGらせてしまう可能性を極限に減らせるので非常に安全に使えるわけですね。
それでは早速コードを記入した状態を見せましょう

使用する主なボタン
Add New (新しいスクリプト追加)
SaveChanges(単純にスクリプトを保存) と
Deactive/Active(そのスクリプトを稼働させるか不稼働にするか)ボタン
最下段の Save関係
Saveボタンはその時のスクリプトの稼働状態によって表示が変化します。
意味的には 「保存してアクティブ化するか」 「保存して非アクティブ化するか」のコマンドが
その時の状態によって交互に出現します。
PageSpeed insights の点数が取れない原因
僕のBLOGを見に来ていただける読者様はきっとBLOGの高速化もちゃんとやりたいなーと
考えている意識の高い方が多いと思いますw
BLOGの高速化を阻む原因は色々あるのですがその中でも
知らない方なら難易度が高い reCAPCHAとcontact-form-7のjsの
制御スクリプトがあります。
高速化を阻む原因スクリプトとして この reCAPCHAとcontact-form-7のスクリプトは
「お問い合わせ」のページ以外の必要ないページに読まれるとただ重たくなるだけの
結構めんどくさい存在なので、必要ページだけ読み込む(もしくはいらないページは削除)を
自動的に実行するスクリプトです。
contact-form-7のスクリプトはソース開かないと効果を確認できませんが
reCAPCHAの場合reCAPCHAアイコンを表示させておけばON/OFFがはっきり見えるので
わかりやすいと思います。(このページの右下にreCAPCHAアイコンがないことを確認)
>>実際にお問い合わせページを開いて画面右下のreCAPCHA動作アイコンを確かめる(別タブで開きます)
こんなスクリプトをcode欄に記述しよう
function loadRCPv3(){ if ( !is_page( 'contact' ) ) {wp_deregister_script( 'google-recaptcha' ); wp_dequeue_style('contact-form-7'); wp_dequeue_script('contact-form-7'); } } add_action( 'wp_enqueue_scripts', 'loadRCPv3',50);
上記のスクリプトは判定条件がありまして
お問い合わせのページのスラッグが contact であるならそのまま使えます。
違うスラッグにしている場合はそれに合わせて書き換えてください。
例えばこのBLOGなら お問い合わせのページのURLは
https://mlabo.org/contact/
なので上記のスクリプトで動作します。
以前他の高速化の記事で
このスクリプトのreCAPCHAのみに対応して functions.phpに記載して動かす記事を
書いていますが あれを少し発展させたものですね。
あっちの記事の末尾にreCAPCHAのアルゴリズム上単体のページだけで効果あるか
しばらく様子見と書いてありますがあの記事書いたのが2022/3/13なので
そろそろ3ヶ月くらいになります。
いまんとこSPAMメールは一通もきてませんので大丈夫だと思います。
この記事ね↓
