是的,您可以通过WP默认功能来完成它。让我解释一下。
1. While switch theme:
有一个
switch_theme
切换主题后立即运行的操作。博客主题更改时会触发switch\\u主题。具体来说,它在切换主题之后但在下一个请求之前激发。当主题被停用时,主题开发人员应该使用这个钩子来做一些事情。
<?php add_action(\'switch_theme\', \'theme_deactivation_function\'); ?>
附加到此挂钩的主题功能仅在停用的主题中触发。要在主题激活时执行操作,请使用
after_switch_theme
.
停用后删除主题的选项:
add_action(\'switch_theme\', \'mytheme_setup_options\');
function mytheme_setup_options () {
delete_option(\'mytheme_enable_features\');
delete_option(\'mytheme_enable_catalog\');
}
switch_theme
仅当主题处于停用状态时才会调用。
2. After switch theme:
附加到此挂钩的主题函数仅在激活的主题(和/或子主题)中触发。要在停用主题时执行操作,请使用
switch_theme
.
换句话说,after\\u setup\\u主题表示WordPress设置当前主题的点,而不是管理员激活和/或配置当前主题的点。
<?php add_action("after_switch_theme", "mytheme_do_something"); ?>
为主题添加选项并将其设置为默认值:
add_action(\'after_switch_theme\', \'mytheme_setup_options\');
function mytheme_setup_options () {
add_option(\'mytheme_enable_catalog\', 0);
add_option(\'mytheme_enable_features\', 0);
}
after_switch_theme
只有在激活主题时才触发。
Referance: switch_theme
和after_switch_theme
动作挂钩位于wp-includes/theme.php