WordPress アクションフック after_switch_theme を使う

WordPress アクションフック after_switch_theme を使う

どうもfujiharaです。梅雨明けてあつすぎてPartyICEポリポリ食べてます。 本日は WordPressのアクションフック after_switch_theme をご紹介します。

はじめに

このフックを知るキッカケはテーマ開発時などに以下のフローで行っているときでした。

  1. 新規でオプションやカスタムフィールドを使う処理を追加
  2. コード更新
  3. 管理画面からオプションやカスタムフィールドの登録
  4. 上記の3の作業を他の開発の人と共有するのが大変ってことで 何かないかなと探していました。

    フック探し

    探していると、upgrader_process_complete が見つかったのですが、 フック内でテーマ、プラグイン、翻訳などの分岐を書かなければいけないのと、テーマにアップデート機能をつけないといけなかったので、 簡単に使用できる after_switch_themeにしました。

    after_switch_theme

    読んで時の如く テーマ変更時に特定の処理を実行できます。

    
    add_action('after_switch_theme', function() {
    // 処理記述
        $newOption = get_option("new_option");
        if (!$newOption) {
            add_option("new_option", "value");
        }
    });
    
    

    上記はテーマがアクティブになった時に実行されますので、一旦別のテーマに変更し戻せば上記の処理が実施されます。 new_option が設定されてなければ、指定した値で登録できます。

    まとめ

    いかがだったでしょうか?これでSQLのダンプを取って渡したり、テーマ更新と合わせた作業を記載しなくてすみます。 問題点は一度テーマを変更しなければならない点です。開発時なら良いですが、本番運用時にはテーマを切り替える際にメンテンナス ページを表示する等の作業をお忘れなく。切り替えテーマにメンテナンス用のテーマがあると良いかもしれないです。

  • このエントリーをはてなブックマークに追加

この記事を読んだ人にオススメ