当调用Switch_Theme()时,我如何运行unctions.php中的代码?

时间:2011-03-31 作者:Scott B

我在函数中有一些代码。设计为仅在主题首次激活时执行的php:

if ( is_admin() && isset($_GET[\'activated\'] ) && $pagenow == \'themes.php\' ) {
//this code only runs when the theme is first activated
}
但是,如果主题在正常激活过程之外被激活,我很确定这段代码不会运行。例如,如果从插件调用switch\\u theme()语句。

在这种情况下,如何修改上面的代码以在switch\\u theme()上执行?

if ( is_admin() && isset($_GET[\'activated\'] ) && $pagenow == \'themes.php\') OR (switch_theme_called() ) ) {
//this code only runs when the theme is first activated
}

1 个回复
最合适的回答,由SO网友:Roman 整理而成

好的,您可以在选项表中存储一个initiate状态,而不是使用$\\u GET参数。

E、 g。

$initialized = get_option(\'mytheme_initialized\');
if ( (false === $initialized) && is_admin() && ($pagenow == \'themes.php\') ) {
//this code only runs when the theme is first activated
update_option(\'mytheme_initialized\', true);
}
不幸的是,“register\\u activation”-钩子只对插件可用->http://core.trac.wordpress.org/ticket/13602

结束

相关推荐