我想用,同一个数据库,(内容/用户/评论/元的/类别等)又一个WordPress安装在我的子目录。
其实我是想创建我的网站的移动版本。 但我不想使用,任何移动检测脚本ORY CSS3媒体查询。 只是想创建我的新主题(移动版)
例如;
主域也子域等;
maindomain.com // root
mobile.maindomain.com // sub directory
这怎么可能呢?
我想用,同一个数据库,(内容/用户/评论/元的/类别等)又一个WordPress安装在我的子目录。
其实我是想创建我的网站的移动版本。 但我不想使用,任何移动检测脚本ORY CSS3媒体查询。 只是想创建我的新主题(移动版)
例如;
主域也子域等;
maindomain.com // root
mobile.maindomain.com // sub directory
这怎么可能呢?
一个关于WordPress的好东西是在代码钩子允许扩展或覆盖核心功能的大量。
解决这个问题的一种办法是在可能在WordPress引导过程中使用为忽略的主题和基本URL设置每个站点的虚拟主机文件来设置一个Apache环境变量。
例如,在Apache的虚拟主机地址:
SetEnv WP_CONTEXT main
和
SetEnv WP_CONTEXT mobile
(或同等如果您使用的是不同的网络服务器)。
在WP-config.php文件:
switch ($_SERVER['WP_CONTEXT']) {
case 'main':
define('WP_HOME','http://maindomain.com');
define('WP_SITEURL','http://maindomain.com');
break;
case 'mobile':
define('WP_HOME','http://mobile.maindomain.com');
define('WP_SITEURL','http://mobile.maindomain.com');
break;
}
这将设置基于环境变量的基本URL。
然后在插件添加以下过滤器:
add_filter('template', 'change_theme');
add_filter('option_template', 'change_theme');
add_filter('option_stylesheet', 'change_theme');
function change_theme()
{
switch ($_SERVER['WP_CONTEXT']) {
case 'main':
return 'main';
break;
case 'mobile':
return 'mobile';
break;
}
这需要在一个插件,这样它的正常主题加载过程之前加载(functions.php的是主题的一部分,因此太晚了)。 这些过滤器将拦截并从数据库中过度乘坐的主题设置。
你不能做到这一点直接,作为WP存储在其数据库URL。 据我所知,有一种方法在SQL中“链接”表,所以它可能是方式 - 链接wp_options例如旁边的一切,但它仍然是一个棘手的方式。