WordPressのテーマをプラグインから変更するためのクラス

例えばWPTouchなどのモバイル表示用プラグインでは、ユーザーエージェントを検出して、テーマファイルを一時的に変更する処理を行っています。

以下で紹介するクラスはこのプラグインの中で使用しているテーマを切り替えるためのクラスです。

使い方

自作プラグインの中で何らかの条件分岐を行い、その条件に従ってテーマを切り替えます。

function is_mobile() {
    // モバイル端末かどうかを判別する...など
}

if (is_mobile()) {
    new switchTheme(
        'default', // テーマのディレクトリ名
        '/path/to/wp-content/themes', // パス
        'http://example.com/path/to/wp-content/themes', // URL
    );
}

switchThemeコンストラクタには以下の引数を設定して下さい。

  1. テーマのディレクトリ名
  2. テーマのディレクトリ名が設置されているディレクトリの絶対パス。多くの場合はwp-content/themesまでの絶対パス。
  3. テーマが設置されているディレクトリまでのURL。http://からはじまるwp-content/themesなどへのURL

第二引数及び第三引数の値はプラグインのディレクトリ内になることも多いと思います。

注意

キャッシュ系のプラグインを入れている場合は誤動作を防ぐために、以下のページのようなテクニックを組み合わせて、一時的にキャッシュさせないようにすることが必要です。

https://firegoby.jp/archives/2223