2012-11-16 30 views
3

我在Amazon EC2,RDS,Nginx,PHP-FPM,APC,BatCache和Memcached上運行了高度優化的WordPress多站點(WPMU)安裝。如何清除WordPress對象緩存中的用戶權限?

APC只在PHP級別運行,用於緩存操作碼,但我沒有將它用於WordPress的對象緩存。爲此,我使用了BatCache + Memcached。

所有這些都運行得非常好,負載超快等,但我遇到了意想不到的問題。

我以測試用戶身份登錄,創建了一個新博客,當我登錄到/ wp-admin時,它告訴我我沒有權限。我註銷,重新登錄,同樣的問題。然後我註銷,重新啓動Memcached,重新登錄並解決問題。

我幾乎可以肯定這是與緩存相關的。我可能需要進入新的網站創建過程並清除Memcached中的某些密鑰,但我不知道如何找到正確的密鑰來清除。

請幫忙! ;)

回答

0

我不是很舒爾如果這是用戶的角色能力的連接,但如果是... 這應該是一個小腳本,以管理員功能重置爲默認設置:

add_action('after_setup_theme', 'add_roles_caps'); 
function add_roles_caps() { 

    $caps = array(
    "edit_post", 
    "read_post", 
    "delete_post", 
    "edit_posts", 
    ... 
); 
    $roles = array(
    get_role('administrator'), 
    get_role('subscriber'), 
); 
    foreach ($roles as $role) { 
    foreach ($caps as $cap) { 
     $role->add_cap($cap); 
    } 
    } 
} 

這是一個例子..你應該填寫所有功能的$ caps數組,列出here