2012-02-14 62 views
1

是否可以在WordPress上使用兩個不同的數據庫,取決於WordPress所在的環境?比如在我的測試環境中,它使用不是Localhost的DataBase事件,儘管測試環境是Localhost,而且在我部署的環境中,它使用了不同的DataBase,而我不必改變任何東西?每當我在LocalHost上完成工作時,我都會通過FTP上傳文件,但我需要每次更改DataBase信息。WordPress不同數據庫

回答

1

我做了很多wordpress開發(比如主題和插件)。我通常會安裝wordpress的本地副本並解決此問題。然後,一旦插件或主題完成,我只是導出並部署特定的文件。沒有必要/不需要移動所有與wordpress相關的文件(包括那些攜帶數據庫信息的文件:wp-config.php)。

但是,在直接回答您的問題時,我想如果這就是您想要執行的操作,則可以修改wp-config.php文件,以便標識數據庫的變量的值取決於您的環境。這將是這樣的:

/////////////////////////////////////// 
// Inside wp-config.php 
/////////////////////////////////////// 

// Get as fancy as you need to in determining your environment 
if($_SERVER['HTTP_HOST'] == 'localhost') { 
    define('DB_NAME', 'my_local_database'); 
    define('DB_USER', 'root'); 
    define('DB_PASSWORD', ''); 
    define('DB_HOST', 'localhost'); 
} 
else { 
    define('DB_NAME', 'my_other_database'); 
    define('DB_USER', 'username'); 
    define('DB_PASSWORD', 'password'); 
    define('DB_HOST', 'path_to_other_host'); 
} 

這可能不是一個好主意,因爲當你更新你的WordPress的文件可以被覆蓋。也許,誰知道。但正如我所說的,只需移動特定於您的項目的文件(比如您在開發環境中使用的自定義主題或插件)就更好。

希望有所幫助。

+0

當然是。函數is_in_localhost()看起來像什麼? – 2012-02-14 04:49:15

+0

我更改了代碼,因此它不使用is_in_localhost()。重點在於你查看wp-config的加載位置,然後相應地設置你的變量。 – 2012-02-14 05:03:25

0

您必須找到數據庫配置文件。它存儲所有數據庫信息,如用戶名,密碼。 將此文件標記爲只讀。