カスタムテーマを作成していると、テーマのインストール時、アンインストール時にだけ処理を加えたいという事があると思います。
以下のフックを使う事で、簡単に処理を加えることが出来ます。
テーマのインストール(アクティベート)時に処理を行うためのアクションフック
add_action("after_switch_theme", "my_activate_theme", 10 , 2); function my_activate_theme($oldname, $oldtheme=false) { }
テーマのインストール(デアクティベート)時に処理を行うためのアクションフック
add_action( 'switch_theme', 'my_deactivate_theme', 10, 2 ); function my_deactivate_theme($new_name, $new_theme) { }
テーマで、このような処理が必要になる場面は、親テーマと子テーマを使っていて、update_option()等で、設定を保存している場合、
親テーマと、子テーマは 同じテーブルのフィールドを共有する事になるため、親テーマの設定が保存されているような場合、
子テーマをアクティベートした場合に親テーマの設定が混ざり合って、意図しない表示になってしまうといった事があります。
また、Codex flush_rewrite_rules等でも、サンプルコードが紹介されています。