2013-03-23 41 views
1

我正在嘗試優化一個擁有大約13,000個用戶的Wordpress網站。目前,每個新用戶向wp_usermeta表添加大約20行,因此涉及該表的查詢開始變慢。我們不使用爲每個用戶添加的許多meta_keys,所以我想刪除它們。如何優化WordPress的wp_usermeta表?

例子:

jabber 
googleplus 
twitter 
yim 

,如果這些是由WP核心加我想知道,或者如果他們從我的插件之一是。如果它們來自核心,那麼消除它們有什麼壞處?有沒有一種優雅的方式來防止產生新的問題?

+0

會插件像http://wordpress.org/extend/plugins/db-optimize/幫助? – 2013-03-23 03:01:53

+0

感謝您的建議,但我試圖避免安裝任何新的插件。 – emersonthis 2013-03-23 16:23:06

回答

2

您可以輕鬆刪除用戶字段。但要確保主題不使用這些字段。

function my_user_fields($contactmethods) { 
    //Remove user fields 
    unset($contactmethods['yim']); 
    unset($contactmethods['aim']); 
    unset($contactmethods['jabber']); 

    //Add user fields 
    $contactmethods['user_gtalk'] = 'GTalk'; 
    $contactmethods['user_facebook'] = 'Facebook'; 
    $contactmethods['user_twitter'] = 'Twitter'; 
    $contactmethods['user_google'] = 'Google+'; 
    $contactmethods['user_linkedin'] = 'LinkedIn'; 

    return $contactmethods; 
} 

add_filter('user_contactmethods','my_user_fields',10,1); 
+0

啊哈!這看起來像我正在尋找的東西。爲了確保我理解,開始時的'unset'是否會阻止在wp_usermeta中創建額外的行?目前它們被創建,但是是空的。我希望他們根本不存在。 – emersonthis 2013-03-23 16:31:34

+0

我做了一些測試,它的工作原理! – emersonthis 2013-03-23 16:38:56