WordPress可以自定義用戶數據表,這樣多個wordpress網站就可以共享用戶數據了,有時候這是非常方便的,這些Wordpress站點應該安裝在同一個數據庫下,數據表前綴各不相同。由於Wordpress的用戶數據表(wp_users和wp_usermeta)相對獨立(點擊這裡查看Wordpress數據表關係),我們不用擔心共享用戶數據後會打亂其它的應用。

共享用戶數據

更改用戶表的方法是編輯站點的wp_config.php,加入如下代碼,假設需要更改的站點前綴是wpen_,需要共享的用戶表前綴是wp_

1
2
define('CUSTOM_USER_TABLE', 'wp_users');
define('CUSTOM_USER_META_TABLE', 'wp_usermeta');

例如我要做多語言站點,每個語言都是一個獨立的wordpress安裝,中文版本作為主站,在主站下安裝一個新的wp站點作為英文版本,只共享用戶數據,其它的都是獨立的,類似multisite但有multisite不具備的優勢,畢竟很多插件對multisite的支持不是很好。

這樣更改存在一定問題,wp_usermeta表中存儲了用戶權限,這個權限的值是以wp前綴開頭的,以管理員為例,管理員用戶id為1,角色是administrator,則表中就有這樣一條記錄

user_id->1, meta_key->wp_capabilities, meta_value->a:1:{s:13:”administrator”;s:1:”1″;}

如果該用戶去登陸共享數據並且以wpen_為前綴的網站(http://youdomain.com/wp-admin),就會被提示
You do not have sufficient permissions to access this page. (你沒有足夠的權限訪問該頁面)

解決的方法是向數據庫插入包含wpen_前綴的數據,即

user_id->1, meta_key->wpen_capabilities, meta_value->a:1:{s:13:”administrator”;s:1:”1″;}

SQL語句為

  1. INSERT INTO `dbname`.`wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (NULL, ‘1’, ‘wpen_capabilities’, ‘a:1:{s:13:”administrator”;s:1:”1″;}’);

On Twitter On Facebook On LinkedIn On QQ On Weibo On Weixin Wechat Share讓wordpress在一個數據庫中共享多用戶 On Renren On Pinterest On QQzone Donate Helpful to you, Please donate me.Alipay.Wechat.

2
說點什麼

  
smilegrinwinkmrgreenneutraltwistedarrowshockunamusedcooleviloopsrazzrollcryeeklolmadsadexclamationquestionideahmmbegwhewchucklesillyenvyshutmouth
Photo and Image Files
 
 
 
Audio and Video Files
 
 
 
Other File Types
 
 
 
1 評論主題
1 線程回復
0 關注
 
Most reacted comment
最熱門的評論帖
2 評論作者
  訂閱  
提醒
斯闊以
Offline

是不是每一個都要用sql語句操作一遍?

@斯闊以

菜單
切換註冊

登錄

忘記密碼?

您也可以使用第三方帳號快捷登錄

Q Q 登 錄
切換登錄

註冊

error: Alert: Content is protected !!