JetPackのPhotonを無効にする

この記事を読むのに必要な時間は約 7 分です。

はじめに・・・

WordPressを利用する人のほとんどが最初にインストールするという人気のあるプラグインJetpack。
Packと名のつくように現在34個のプラグインがパック化されています。
私もいくつか利用しています。

jetpack
しかし、種類が多いぶん、中には要らないものも多くあります。

無料のCDNサービス・・・

少し前からCDNというサービスが普及してきました。
CDNとは、コンテンツデリバリーネットワーク (Contents Delivery Network)の略で、キャッシュ分散サービスのことです。音楽やデジタルコンテンツなどの重いファイルをひとつのサーバーだけでなく何箇所かのサーバーに分けておくことでネットワークに掛かる負担を分散し、表示を早くする事ができます。

WordPressでも画像だけに限られますが、PhotonというCDNサービスが無料で利用できます。
Photonは*.gif *.jpg *.jpeg *.png の各画像ファイルがDB(データベース)にある場合、自動的に最適な場所にあるサーバーにコピーを作り、元の画像リンクをコピーを置いたサーバーのリンクに置き換えます。

私は自分でサーバーを立てているので、容量は全く気にしていません。
表示速度も、それほど大きい物はWEB配信するつもりもないので気にしていません。
動画でも写真でもとことん詰め込んでいます。

ところが・・・

デフォルトでPhotonは無効にしていますが、有効化していないのに勝手に画像リンクがphotonのリンクに置き換えられていることに気がつきました。

phonton

それに加え・・・

絵文字を使用しているページでプラグイン「images Lazy lord(以下略)」を使用している弊害が起きてしまいます。

「images Lazy load(以下略)」は画像ファイルをテキストの後から読み込んでページの表示スピードを上げるプラグインです。

しかし、これをCDNサービスのPhotonが邪魔をします。「images Lazy load(以下略)」は本来ならぱ、画像を表示する直前にDefaultで用意した軽量のgif画像を読み込み、テキストを読み込んでから画像ファイルを表示します。

詳細はここでは省きますが、photonがそのgifをcdnのurlに置き換えると、絵文字の元のcss指定が効かなくなり、ありえない大きさで表示されてしまいます。絵文字は本来、テキストの大きさと同じ(イコール)で良い訳です。

そこで

Photonの指定からGIFを無効にすることで対処しました。

  • プラグインのfront.phpの中のgifを下の図のように削除してしまいます。
global $config;

        if ($config['lazyload_image_strict_match']) {
            $regexp = "/]*)\.(bmp|jpeg|jpg|png)([^<>]*)>/i";
        } else {
            $regexp = "/]*)>/i";
        }

または、以下の方法でも結果的に同じことができます。

pluginsフォルダにあるjetpackのclass.photon.phpを開き、

< ?php

class Jetpack_Photon {
    /**
     * Class variables
     */
    // Oh look, a singleton
    private static $__instance = null;

    // Allowed extensions must match http://code.trac.wordpress.org/browser/photon/index.php#L31
    protected static $extensions = array(
    //  'gif',
    //  'jpg',
    //  'jpeg',
    //  'png'
    );

    // Don't access this directly. Instead, use self::image_sizes() so it's actually populated with something.
    protected static $image_sizes = null;

// コメントアウトする

単純ですが、12行目から15行目をコメントアウトすることで対処します。
上の例では全部を無効化しましたが、gifだけを無効にする場合、’gif’ をコメントアウトすればOKです。
CDNに置きたくないファイルの拡張子だけを無効化することが出来ます。

Jetpackの管理画面からphotonの細かい設定が出来るなら問題ないのですが、現在のところ、「有効」か「無効」のみ選択することしか出来ません。
しかも、無効にしても有効になってしまうのですからタチが悪いものです。
同様の症状でお困りの場合、お試しください。

※ただし、この方法は当然ながらjetpackPluginsをUpDateすると元に戻ってしまいますのでご注意ください。
【2015/03/21】
Jetpackのタイルギャラリーを有効にすると画像リンクが自動的に*.wp.comに設定されるため、この機能を無効にしても写真ギャラリーには意味が無いことがわかりました。
投稿内の絵文字や投稿内で使用している画像には有効です。

【2018/09/15】
PHOTONを無効にしてもこのプラグインで解決します。
標準でギャラリーはカルーセルになりますが以下のリンク先にある方法で無効化出来ます。
無効化後はColorBoxなどのLightBox系が使えます。

JETPACK不要のタイルギャラリープラグイン