WIKI使用導(dǎo)航
站長百科導(dǎo)航
站長專題
- 網(wǎng)站推廣
- 網(wǎng)站程序
- 網(wǎng)站賺錢
- 虛擬主機
- cPanel
- 網(wǎng)址導(dǎo)航專題
- 云計算
- 微博營銷
- 虛擬主機管理系統(tǒng)
- 開放平臺
- WIKI程序與應(yīng)用
- 美國十大主機
WordPress:Running a Development Copy of WordPress
怎樣在一個數(shù)據(jù)庫中運行兩個WordPress的副本[ ]
這個方法是適用于 2.3.1版本 –但是你也可以在網(wǎng)頁的底部為 2.5版本使用這個方法。
直到2.3.1版本的解決方法[ ]
主題和插件開發(fā)者通常面臨的一個問題是,他們希望在變化的數(shù)據(jù)上測試你的插件,但是在測試時,希望不會將你的站點擾亂。
例如,我的在線站點位于http://www.ben-xo.com/v6/
但是我正在發(fā)展的站點位于http://localhost/~xo/ben-xo.com/dev/v6/
下面是一個解決辦法(關(guān)于WordPress2的-在2.0.2上測試了),讓你輕松地運行一個本地和一個遠(yuǎn)程的WordPress副本的安裝不會更改你的數(shù)據(jù)庫或者配置文件!
請注意當(dāng)這個插件激活了,WordPress會忽視你在你的選項中的siteurl和home上的配置,因此你自己要解決這些配置。
hack 進入wp-includes/functions.php
/* 選項函數(shù)*/
function get_settings($setting) {
global $wpdb;
$value = wp_cache_get($setting, 'options');
/* Ben XO's siteurl hack */ if( 'siteurl' == $setting or 'home' == $setting ) {
$_REAL_SCRIPT_DIR = realpath(dirname($_SERVER['SCRIPT_FILENAME'])); // 這個網(wǎng)頁目錄的文件系統(tǒng)路徑(index.php 或者其它的)
$_REAL_BASE_DIR = realpath(dirname(__FILE__) . DIRECTORY_SEPARATOR . '..'); // 這個文件的母目錄的文件系統(tǒng)路徑 // (wp-includes在里面)
$_MY_PATH_PART = substr( $_REAL_SCRIPT_DIR, strlen($_REAL_BASE_DIR)); // <installation_path> 和網(wǎng)頁之間的子文件夾部分
$INSTALLATION_PATH = $_MY_PATH_PART ? substr( dirname($_SERVER['SCRIPT_NAME']), 0, -strlen($_MY_PATH_PART) ) : dirname($_SERVER['SCRIPT_NAME']) ; // 我們在<installation_path>的結(jié)尾部分減去了子文件夾, // 我們只有了<installation_path> :)
$value = 'http' . ($_SERVER['HTTPS'] ? 's' : null) . '://' . $_SERVER['HTTP_HOST'] . $INSTALLATION_PATH ; } /* end Ben XO's siteurl hack */
if ( false === $value ) { if ( defined('WP_INSTALLING') ) $wpdb->hide_errors();
在適當(dāng)?shù)奈恢糜辛诉@個hack之后,現(xiàn)在你可以為你的本地和遠(yuǎn)程WordPress安裝使用同樣的數(shù)據(jù)庫和文件了。如果你想要使用一個遠(yuǎn)程數(shù)據(jù)庫的話,可能你需要做的事就是將不同的設(shè)置放到wp-config.php中。
這個hack是以我對于PHP在線文件的評論為基礎(chǔ)的。
請注意:如果你的服務(wù)器在安全的模式中運行PHP,這個hack并沒有得到測試。如果你有什么問題,請將問題發(fā)表到 討論網(wǎng)頁上。
wordpress 2.5 的解決辦法[ ]
編輯文件wp-includes/options.php
在函數(shù)get_option中,在global $wpdb一行的后面添加Ben的hack??雌饋硐瘢?
function get_option( $setting ) {
global $wpdb;
/* Ben XO's siteurl hack */
if( 'siteurl' == $setting or 'home' == $setting )
{
$_REAL_SCRIPT_DIR = realpath(dirname($_SERVER['SCRIPT_FILENAME'])); // 這個網(wǎng)頁目錄的文件系統(tǒng)路徑 (index.php 或者其它的)
$_REAL_BASE_DIR = realpath(dirname(__FILE__) . DIRECTORY_SEPARATOR . '..'); // 這個文件的母目錄的文件系統(tǒng)路徑 // (wp-includes 是在里面)
$_MY_PATH_PART = substr( $_REAL_SCRIPT_DIR, strlen($_REAL_BASE_DIR)); //在 <installation_path> 和網(wǎng)頁之間的子文件夾部分
$INSTALLATION_PATH = $_MY_PATH_PART ? substr( dirname($_SERVER['SCRIPT_NAME']), 0, -strlen($_MY_PATH_PART) ) : dirname($_SERVER['SCRIPT_NAME']) ; // 我們在<installation_path>的尾部減去了子文件夾部分, // 我們只剩下了 <installation_path> :)
$value = 'http' . ($_SERVER['HTTPS'] ? 's' : null) . '://' . $_SERVER['HTTP_HOST'] . $INSTALLATION_PATH ;
return $value;
} /* end Ben XO's siteurl hack */
// 允許插件縮短選項
$pre = apply_filters( 'pre_option_' . $setting, false );
if ( false !== $pre )
return $pre;
// ...其它的函數(shù)繼續(xù)運行 (不要復(fù)制這一行!)
This page is [[WordPress::Category:Stubs|marked]] as incomplete. You can help Codex by expanding it.