Menu/Prof
翻訳
スズキマコト
自由人
元々は楽器屋のギター兄ちゃん。
趣味でプログラミングしてるうちに
本職になってしまった人。

過去に喋っていた言語
c pascal Assembler
perl PHP Python Ruby など
javascriptなどは都度必要に応じて。
最近Mac買ったのでswift勉強してます。

体ぶっ壊して死にかけたので人生RESET中。
\ ポイント最大10倍! /

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

contents

子テーマにある 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メールは一通もきてませんので大丈夫だと思います。

この記事ね↓

シェアしてくれると喜びます
  • URLをコピーしました!
  • URLをコピーしました!
contents