2010-03-18 97 views
2

是否可以添加一个选项屏幕到Wordpress MU主题(选项被保存为每个用户,所以博客,而不是全网)?wordpress mu主题每个用户选项

我已经习惯了WordPress主题进行编程,但我有点困惑的是,如何让在多用户环境中的自定义发生......

回答

1

哇,没有一个人毕竟这个时候对你说过?好的,这是答案。如果您在启动并运行几个WPMU博客后检查MySQL数据库,您会注意到每个博客都有一个单独的表前缀。 wp_1_前缀转到主管理员博客。然后wp_2_前缀等转到您在wp-admin系统中创建的所有非主要管理员博客。如果您想使用Codex函数来访问哪个表前缀,实际上很简单 - 只需执行“global $ table_prefix;”即可。事实上,作为一个方面说明,WordPress发出了大量非常有用的全局变量,您可以通过执行“print_r($ GLOBALS); die();”像插件或主题文件一样。

但无论如何,你的问题的答案是,如果你看看MySQL数据库,你会发现WPMU中的每个博客都有自己的选项表,它是独立的,不是站点范围内的,而是博客范围内的 - 只是如你所愿。当你使用标准的WordPress选项API时,它将自动访问你所需要的选项表,而无需使用$ wpdb全局对象,也不需要使用$ table_prefix全局字符串。因此,如果您使用get_option(),update_option(),add_option()和delete_option() - 这些将仍然在WPMU环境中工作。即使插件文件夹是在所有博客中共享的,但插件的设置不是并且是每个博客专有的。

现在,如果您不是在Codex中使用WP Options API,而是使用$ wpdb全局对象进行操作,那么您需要注意,您需要使用$ table_prefix全局字符串作为表路径的一部分。在某些情况下,这是可取的,例如需要将很多数据存储在自定义表中。例如,将HTTP_REFERER和用户代理信息存储到表中以便连接进来。

+0

很酷,所以它实际上与标准wordpress相同。非常感谢! – pixeline 2010-06-09 11:37:15