WordPressがデフォルトで読み込むスクリプトやスタイルシート(コアファイル)をjsDelivrのCDNからロードするWordPressプラグイン「jsdelivred」を書いた。

wordpress plugin

WordPressのjsやcssはWordPress/WordPressというGitHubミラーから、jsDelivrのGitHubエンドポイントで読みこむようになる。これらのアセットはインストールしているWordPressのバージョンのものを使うのでWordPressをアップデートすると、アセットもアップデートされるはず。ローカルにあるファイルのハッシュを計算してSubresource Integrityを利用するのでGitHubリポジトリかjsDelivrのファイルが改竄されても、対応しているブラウザなら少し安心できる。

ソース

既知の問題とか

jsdelivrのエッジやオリジンにキャシュがないと糞遅い。

slow case
キャッシュがないと数秒かかる

もちろんキャッシュされれば問題ないが、WordPressをアップデートするたびに最初の数アクセスはキャッシュがないから同じ問題がおきるはず。これは、jsDelivrのバックエンドがWordPressのパッケージ全体をフェッチしなおすからだと思う。とりあえず、RawGitのようにリクエストされたファイルだけフェッチして、あとからパッケージのキャッシュを取得するとかやりようはありそうだけど。

コアファイルだけという保証がない

デフォルトディレクトリにあるかどうかでコアファイルかどうかを判断してるから、本当にそれが正しいか保証がない。

PHP5.3.0未満だと動かない

名前空間を使ってるから。でもそんな古いPHP使ったらダメ。

WordPressプラグインに不慣れ

WordPressのプラグインとかよくわかんない。今のところ動いてるみたいだけど将来はわからない。ただ、こういうものを書くと勉強にはなった。