Loading…

让wp和其他程序共用usertable



这两天想把我的WP和我的RSS聚合站点部分东西使用一个表,那样加快执行速度,也方便我管理。于是就先从比较简单的用户这块下手,不过试验下,就那样,具体行不行没详细测试。下面就介绍下如何将让多个系统共用wordpress的user table。

 
这个功能主要在wp-includes/wp-db.php文件,定义一些值之后就可以让wordpress其它系统共享user table:
 
在wp-db.php文件中有这两段代码
 
if ( defined(‘CUSTOM_USER_TABLE’) )
  $this->users = CUSTOM_USER_TABLE;
 
if ( defined(‘CUSTOM_USER_META_TABLE’) )
  $this->usermeta = CUSTOM_USER_META_TABLE;
 
以上这几行代表说,只要在wp-config.php里定义下“CUSTOM_USER_TABLE”和“CUSTOM_USER_META_TABLE”的表名就可以让共享。示范如下
 
define(‘CUSTOM_USER_TABLE’,"your_user_table");
define(‘CUSTOM_USER_TABLE’,"your_usermeta_table");
 
这样就可以使wp不使用预设的wp_users和wp_usermeta,不过要注意的是写插件时调用的user table要用$wpdb->users和$wpdb->usermeta,有时候他们并不会等于$table_prefix."users"和$table_prefix."usermeta"。
 
如果是一样的wordpress,相同的版本,兼容度就很高。不过不同系统间,特别是密码编码方式可能会不一样(2.6用了一种很奇怪的方式),有可能需要以插件修改wp-includes/pluggable.php里的
wp_check_password和wp_hash_password,类似MD5 Password Hashes for 2.5就是修改这两个function的定义来达到将密码编码方式退回到2.5版之前。
 
修改这个也有一定的风险,就是即便是一样都是wordpress的系统,有些usermeta是无法共享的,像是权限,都会以meta_key都会以$table_prefix开头。
 
看来我还是老实点,两个系统分开来做吧,不折腾了。哪位愿意研究的,研究完了告诉我吧~谢谢了!
 

发布在: 2008年9月23日 | 分类: 杂七杂八
Tags: , , , , , ,