激活后无法切换主题

时间:2014-12-20 作者:Dedalos01

我正在创建一个插件(我在这方面非常新手),以加载自定义分类法、自定义帖子类型和自动激活主题,因此我有以下代码:

// Custom Post Types and Taxonomies
require_once(\'inc/cpt-taxonomies.php\');

// Switch Theme
function updateTheme($theme){
    update_option(\'template\', $theme);
    update_option(\'stylesheet\', $theme);
    update_option(\'current_theme\', $theme);
}
updateTheme(\'Creative_Grid\');

require_once(\'inc/initial-setup-theme.php\');
问题是,当被激活时,我无法切换到Appreance页面中的其他主题,就像插件在尝试切换到其他主题时重新激活它一样。我可以确认,当我切换到另一个主题时,插件的所有代码都会再次运行,我不希望这样,我希望在激活时执行数据。

有什么想法吗?还有一个问题,如果主题不可用,我应该使用什么样的php条件来防止失败?

谢谢,罗伊

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

看来你正在执行updateTheme() 在每个页面加载中。要仅在激活时执行任务,您应该挂接updateTheme() 功能到register_activation_hook 行动挂钩:

register_activation_hook( __FILE__, \'activation_callback\' );
function activation_callback() {
     //The code inside this function is executed only on plugin activation
     $theme = \'twentyeleven\'; //SET the value of $theme to whatever you want (not provided in the question)
     updateTheme($theme);
}

// Switch Theme
function updateTheme($theme){
    update_option(\'template\', $theme);
    update_option(\'stylesheet\', $theme);
    update_option(\'current_theme\', $theme);
}

结束

相关推荐

Options.php问题-数据未保存

我创建了一个带有一些字段的自定义菜单页。我想存储这些设置以便在其他地方使用。带有字段的表单应使用action=\"options.php\" 但每次我在表单上点击save时,它都会将我发送回settings页面,而不会保存数据。我正在我的函数中注册设置。phpfunction register_settings() { register_setting(\'settings-group\',\'phonenumber\'); register_setti