WordPress アクションフック after_switch_theme を使う
どうもfujiharaです。梅雨明けてあつすぎてPartyICEポリポリ食べてます。 本日は WordPressのアクションフック after_switch_theme をご紹介します。
はじめに
このフックを知るキッカケはテーマ開発時などに以下のフローで行っているときでした。
- 新規でオプションやカスタムフィールドを使う処理を追加
- コード更新
- 管理画面からオプションやカスタムフィールドの登録
上記の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のダンプを取って渡したり、テーマ更新と合わせた作業を記載しなくてすみます。 問題点は一度テーマを変更しなければならない点です。開発時なら良いですが、本番運用時にはテーマを切り替える際にメンテンナス ページを表示する等の作業をお忘れなく。切り替えテーマにメンテナンス用のテーマがあると良いかもしれないです。