WordPress: Running a Development Copy of WordPress:修订间差异
无编辑摘要 |
无编辑摘要 |
||
第1行: | 第1行: | ||
==怎样在一个数据库中运行两个WordPress的副本== | ==怎样在一个数据库中运行两个WordPress的副本== | ||
这个方法是适用于 2.3.1版本 –但是你也可以在网页的底部为[[WordPress:Running a Development Copy of WordPress#Solution_for_wordpress_2.5| 2.5版本]]使用这个方法。 | 这个方法是适用于 2.3.1版本 –但是你也可以在网页的底部为[[WordPress:Running a Development Copy of WordPress#Solution_for_wordpress_2.5| 2.5版本]]使用这个方法。 | ||
=== 直到2.3.1版本的解决方法 === | === 直到2.3.1版本的解决方法 === | ||
主题和插件开发者通常面临的一个问题是,他们希望在变化的数据上测试你的插件,但是在测试时,希望不会将你的站点扰乱。 | 主题和插件开发者通常面临的一个问题是,他们希望在变化的数据上测试你的插件,但是在测试时,希望不会将你的站点扰乱。 | ||
例如,我的在线站点位于http://www.ben-xo.com/v6/ | 例如,我的在线站点位于http://www.ben-xo.com/v6/ | ||
但是我正在发展的站点位于http://localhost/~xo/ben-xo.com/dev/v6/ | 但是我正在发展的站点位于http://localhost/~xo/ben-xo.com/dev/v6/ | ||
下面是一个解决办法(关于WordPress2的-在2.0.2上测试了),让你轻松地运行一个本地和一个远程的WordPress副本的安装''不会更改你的数据库或者配置文件''! | 下面是一个解决办法(关于WordPress2的-在2.0.2上测试了),让你轻松地运行一个本地和一个远程的WordPress副本的安装''不会更改你的数据库或者配置文件''! | ||
''请注意''当这个插件激活了,WordPress会忽视你在你的选项中的<tt>siteurl</tt>和<tt>home</tt>上的配置,因此你自己要解决这些配置。 | ''请注意''当这个插件激活了,WordPress会忽视你在你的选项中的<tt>siteurl</tt>和<tt>home</tt>上的配置,因此你自己要解决这些配置。 | ||
hack 进入<tt>wp-includes/functions.php</tt> | |||
<div style="padding: 1em; line-height: 1.1em; border: 1px dashed #2f6fab; color: Black; "> | <div style="padding: 1em; line-height: 1.1em; border: 1px dashed #2f6fab; color: Black; "> | ||
<tt> | <tt> | ||
/* 选项函数*/ | /* 选项函数*/ | ||
function get_settings($setting) { | function get_settings($setting) { | ||
第129行: | 第63行: | ||
在适当的位置有了这个hack之后,现在你可以为你的本地和远程WordPress安装使用同样的数据库和文件了。如果你想要使用一个远程数据库的话,可能你需要做的事就是将不同的设置放到<tt>wp-config.php</tt>中。 | |||
这个hack是以[http://uk.php.net/manual/en/reserved.variables.php#reserved.variables.server 我对于PHP在线文件的评论]为基础的。 | |||
''请注意:如果你的服务器在安全的模式中运行PHP,这个hack并没有得到测试。如果你有什么问题,请将问题发表到 [[WordPress:Talk:Running_a_Development_Copy_of_WordPress|讨论网页上]]。'' | |||
''请注意: | |||
=== wordpress 2.5 的解决办法=== | === wordpress 2.5 的解决办法=== | ||
编辑文件wp-includes/options.php | 编辑文件wp-includes/options.php | ||
在函数get_option中,在global $wpdb一行的后面添加Ben的hack。看起来像: | 在函数get_option中,在global $wpdb一行的后面添加Ben的hack。看起来像: | ||
<tt> | <tt> |
2008年6月28日 (六) 16:30的最新版本
怎样在一个数据库中运行两个WordPress的副本[ ]
这个方法是适用于 2.3.1版本 –但是你也可以在网页的底部为 2.5版本使用这个方法。
直到2.3.1版本的解决方法[ ]
主题和插件开发者通常面临的一个问题是,他们希望在变化的数据上测试你的插件,但是在测试时,希望不会将你的站点扰乱。
例如,我的在线站点位于http://www.ben-xo.com/v6/
但是我正在发展的站点位于http://localhost/~xo/ben-xo.com/dev/v6/
下面是一个解决办法(关于WordPress2的-在2.0.2上测试了),让你轻松地运行一个本地和一个远程的WordPress副本的安装不会更改你的数据库或者配置文件!
请注意当这个插件激活了,WordPress会忽视你在你的选项中的siteurl和home上的配置,因此你自己要解决这些配置。
hack 进入wp-includes/functions.php
/* 选项函数*/
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'])); // 这个网页目录的文件系统路径(index.php 或者其它的)
$_REAL_BASE_DIR = realpath(dirname(__FILE__) . DIRECTORY_SEPARATOR . '..'); // 这个文件的母目录的文件系统路径 // (wp-includes在里面)
$_MY_PATH_PART = substr( $_REAL_SCRIPT_DIR, strlen($_REAL_BASE_DIR)); // <installation_path> 和网页之间的子文件夹部分
$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 ; } /* end Ben XO's siteurl hack */
if ( false === $value ) { if ( defined('WP_INSTALLING') ) $wpdb->hide_errors();
在适当的位置有了这个hack之后,现在你可以为你的本地和远程WordPress安装使用同样的数据库和文件了。如果你想要使用一个远程数据库的话,可能你需要做的事就是将不同的设置放到wp-config.php中。
这个hack是以我对于PHP在线文件的评论为基础的。
请注意:如果你的服务器在安全的模式中运行PHP,这个hack并没有得到测试。如果你有什么问题,请将问题发表到 讨论网页上。
wordpress 2.5 的解决办法[ ]
编辑文件wp-includes/options.php
在函数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'])); // 这个网页目录的文件系统路径 (index.php 或者其它的)
$_REAL_BASE_DIR = realpath(dirname(__FILE__) . DIRECTORY_SEPARATOR . '..'); // 这个文件的母目录的文件系统路径 // (wp-includes 是在里面)
$_MY_PATH_PART = substr( $_REAL_SCRIPT_DIR, strlen($_REAL_BASE_DIR)); //在 <installation_path> 和网页之间的子文件夹部分
$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;
// ...其它的函数继续运行 (不要复制这一行!)
This page is [[WordPress::Category:Stubs|marked]] as incomplete. You can help Codex by expanding it.