通过选项面板切换主题

时间:2011-11-09 作者:JonnyPlow

是否可以允许用户在登录时通过主题选项面板切换整个主题?我不希望用户使用标准的wordpress方式,而只是他们面板中的一个选项。有什么想法吗?

编辑:这适用于用户自己的网络站点。

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

如果你的主题内置了主题选项,那么如果人们切换它,如果不是在每个主题中,主题的管理方面就会丢失,因此我要做的是:

将可用主题切换到具有所有后端功能的主题的子主题您必须编辑任何主题,使其成为子主题,并在每次更新时进行编辑。如果这些主题是从存储库或第三方获取的,那么就没有多大乐趣。

将主题选项页面功能制作成插件无论主题是什么,它都将可用,您只需插入任何其他您喜欢的主题,而无需编辑它们。

在代码方面,有两个过滤器可以用于主题路由的来源。对于子主题,只需过滤样式表:

add_action( \'setup_theme\', \'switch_user_theme\' );
function switch_user_theme() {
    if ( false != ( $user_theme = get_user_meta( wp_get_current_user()->ID, \'theme\', true ) ) ) {
         add_filter( \'template\', create_function( \'$t\', \'return "\' . $user_theme . \'";\' ) );
         add_filter( \'stylesheet\', create_function( \'$s\', \'return "\' . $user_theme . \'";\' ) );
    }
}
注意。使用switch_theme() 函数更新整个站点的默认主题,而不仅仅是用户。

SO网友:Sterling Hamilton

一切皆有可能!

查看以下内容:http://codex.wordpress.org/Function_Reference/switch_theme

可能正是你想要的。

这也可能有帮助:http://wordpress.org/extend/plugins/theme-switcher/

结束

相关推荐

Switch_to_Blog()中的SQL SELECT出现问题

我正在使用switch\\u to\\u blog()和restore\\u current\\u blog()跨多站点安装执行一些功能。我尝试做的一件事是使用get\\u row()选择一个非常特定的帖子。我的函数如下所示:$prefix = $wpdb->prefix; $tbl = $prefix; $product = $wpdb->get_row(\"SELECT * FROM {$tbl}_posts WHERE ID = 4253\"); print_r(