Simplicityを少し改造してみた 番外編 part17 jQueryをGoogleCDNで読み込む 2016-3月バージョン

以前、jQueryをGoogleのCDNから読み込む方法を書きました。このサイトはSimplicity1.5を魔改造しているため、現在のwordpress4.xでSimplicity2.1.0あたりでは、以下のブログカードの記事では上手く読み込めない場合があるかも知れないとわかりましたので、新たに読み込めるやつを書いておこうかと思います。

[続報] fopen,file_get_content等がそのままでは利用できないサーバーでWordPressのjQueryをCDNにする方法
最近、うちのlinux mintのChromiumがやたら重いので、あぁもう鬱陶しいと思っていた所、Firefoxのアップデートが先日来まし...

jQueryをGoogleのCDNから読み込む

Simplicityで利用する場合は、子テーマfunctions.phpに上記を追記します。

管理画面以外でCDNを読み込みます。管理画面は既存のwordpressに付録されているjQueryを使うようになります。

is_ssl()は環境によっては上手く動作しないサーバーがあるかも知れませんがたいていは大丈夫かと思います。もし上手く動作しない場合は、is_ssl()と$protocolを無くして//ajax.googleapis.com/…’の形でやれば良いかと思います。

上記では現在最新のjQuery2.2.0を読み込むようにしてあります。古いIEのサポートも終わりましたし、これで良いのではないかと思います。バージョン自体はGoogle Hosted Librariesにて確認して、なるべく最新のものを利用されるのが良いかと思います。

最新のものを選択するには、
‘//ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js’;
$version = ‘2.2.0‘;
この部分を変更します。

見慣れぬget_transient()と言うのが出てきていますが、これは、

Transients API は Options API に似ていますが、有効期限という機能を使うことで、キャッシュされるデータを一時的に wp_options テーブルへ保存するという処理をシンプルに実現します。

こういうものです。

google_jquery_availableがtrueの時は、既存のjQueryの読み込みをwp_deregister_scriptで解除して、wp_register_scriptで新たに登録します。つまりjQueryを有効期限を設けて、wp_optionsテーブルに書き込みたいわけですが、最初はセットされていないので必ずfalse側から実行されます。

false側では、wp_remote_headにて、GoogleのCDNのアドレスにまずアクセスして、そのレスポンスコードが200(ステータスok)の時でis_wp_error()にてエラーがない時、既存のjQueryを解除して、CDNのアドレスのjQueryを取得し、set_transientに有効期限30分でwp-optionにjQueryを保存します。

これを応用してfontawesomeとかにするとより良いかも知れませんね。
Font-AwesomeのCDN:

元ネタ: A Better Way to Add Google CDN Hosted jQuery to WordPress | Max Rice

スポンサーリンク

シェアする

フォローする