dou*_*arp 7 wordpress configuration development-environment
为了在WordPress网站(http://www.example.com)上进行本地开发,我之前就像这样覆盖了WP_SITEURL和WP_HOME值wp-config.php:
define('WP_SITEURL', 'http://local-example/');
define('WP_HOME', 'http://local-example/');
Run Code Online (Sandbox Code Playgroud)
这将允许我将数据库和站点文件复制到本地服务器,并根据需要进行修改,在本地安装上进行测试.
然后有必要将安装转换为WordPress多站点,以便在主站点和托管在子域(http://second.example.com)上的辅助站点之间共享用户,身份验证,插件等.
上面覆盖wp_options表中的值的方法不再有效,但我不确定为主要和子域wp_blogs的wp_2_options表以及表设置值的正确方法.
更新我的HOSTS文件有点是一种解决方法,但它并不理想(我无法与实时网站进行比较等).运行脚本来更改数据库值是我尝试过的另一个选项,但稍微麻烦一点,所以我的问题是MultiSite中是否有一个选项可以在设置文件中覆盖这些值,例如wp-config.php,如果是这样的话看起来像.
dou*_*arp 10
wp_options表复制到我的开发环境,因为它们包含所需的配置.为了克服不能够在多站点设置WP_SITEURL和WP_HOME值的问题,我写了一个自定义过滤器来替代_config_wp_siteurl()和_config_wp_home()可用于包含在一个插件非多站点安装功能可用网络范围,是配置在wp-config.php.我就能够给所有的数据库表的复制,除了 wp_site和wp_blogs本地数据库.
我强烈推荐Chris Murphy撰写的WordPress 3.0 URL令牌替换技术文章,以帮助处理内容中的URL.
此示例假定子域多站点安装,具有域example.com和两个子域,www.example.com以及second.example.com.本地开发URL将分别为www.example.local和second.example.local.
数据库变更:
更新域值wp_site:
UPDATE wp_site SET domain = 'example.local' WHERE domain = 'example.com';
Run Code Online (Sandbox Code Playgroud)
更新以下域中的域值wp_blogs:
UPDATE wp_blogs SET domain = 'www.example.local' WHERE domain = 'www.example.com';
UPDATE wp_blogs SET domain = 'second.example.local' WHERE domain = 'second.example.com';
Run Code Online (Sandbox Code Playgroud)
插件代码:应在网络范围内安装以下插件.
<?php
/*
Plugin Name: MultiSite WP_HOME and WP_SITEURL
Plugin URI: http://doublesharp.com/
Description: Allows wp_options values to be overwritten in wp-config.php for MultiSite
Author: Justin Silver
Version: 1.0
Author URI: http://doublesharp.com
License: GPL2
*/
function _ms_config_wp_siteurl( $url = '' ) {
if (is_multisite()):
global $blog_id, $current_site;
$cur_blog_id = defined('BLOG_ID_CURRENT_SITE')? BLOG_ID_CURRENT_SITE : 1;
$key = ($blog_id!=$cur_blog_id)? $blog_id.'_' : '';
$constant = 'WP_'.$key.'SITEURL';
if ( defined( $constant ) )
return untrailingslashit( constant($constant) );
endif;
return $url;
}
add_filter( 'option_siteurl', '_ms_config_wp_siteurl' );
function _ms_config_wp_home( $url = '' ) {
if (is_multisite()):
global $blog_id;
$cur_blog_id = defined('BLOG_ID_CURRENT_SITE')? BLOG_ID_CURRENT_SITE : 1;
$key = ($blog_id!=$cur_blog_id)? $blog_id.'_' : '';
$constant = 'WP_'.$key.'HOME';
if ( defined( $constant ) )
return untrailingslashit( constant($constant) );
endif;
return $url;
}
add_filter( 'option_home', '_ms_config_wp_home' );
?>
Run Code Online (Sandbox Code Playgroud)
配置wp-config.php:
添加新常量wp-config.php.主站点应使用标准WP_HOME,WP_SITEURL并且第三个URL应使用WP_{$blog_id}_HOME和WP_{$blog_id}_SITEURL
define('WP_HOME', 'http://www.example.local');
define('WP_SITEURL', 'http://www.example.local');
define('WP_2_HOME', 'http://secondary.example.local');
define('WP_2_SITEURL', 'http://secondary.example.local');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14606 次 |
| 最近记录: |