我想在我的子目录中使用相同的数据库(内容/用户/评论/元/类别等)进行另一个wordpress安装。
我实际上想要创建我的网站的移动版本。但我不想使用任何移动检测脚本ory css3媒体查询。只想创建我的新主题(移动版)
例如;
主域名也有子域名;
maindomain.com // root
mobile.maindomain.com // sub directory
这怎么可能?
答案 0 :(得分:8)
WordPress的一个好处是代码中有大量的钩子,允许你扩展或覆盖核心功能。
解决此问题的一种方法是在vhost文件中为可以在WordPress引导过程中使用的每个站点设置一个Apache环境变量,以覆盖主题和基本URL设置。
e.g。在Apache vhost中添加:
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是主题的一部分,因此太晚了)。这些过滤器将截取并覆盖数据库中的主题设置。
答案 1 :(得分:0)
你不能直接这样做,因为WP将其url存储在数据库中。 AFAIK有一种在sql中“链接”表的方法,所以它可能就是这样 - 例如,链接wp_options旁边的所有内容,但它仍然是一种棘手的方式。
答案 2 :(得分:0)