我希望在移动子域中显示相同的WordPress博客,并在子文件夹中显示主域。这看起来如下:
但是,这是可能的,还是我需要在主博客上安装一个单独的博客并将内容复制到移动博客上?
PS - 这是此阶段的测试环境,我将处理用户代理切换和SEO重复内容注意事项。
答案 0 :(得分:0)
这是可行的,但你没有简单的不显眼的解决方案。
有一种简单的方法可以做到这一点。破解核心,在wp_set_wpdb_vars()
中找到wp-includes/load.php
,然后在$prefix = $wpdb->set_prefix( $table_prefix );
之后添加:{/ p>
if($_SERVER['SERVER_NAME'] == 'm.domain.tld'){
$wpdb->options = "mobile_{$wpdb->options}";
$wpdb->postmeta = "mobile_{$wpdb->postmeta}";
$wpdb->commentmeta = "mobile_{$wpdb->commentmeta}";
}else{
$wpdb->options = "mobiless_{$wpdb->options}";
$wpdb->postmeta = "mobiless_{$wpdb->postmeta}";
$wpdb->commentmeta = "mobiless_{$wpdb->commentmeta}";
}
这个技巧会将沙箱options and metas
分成两组不同的表。这样他们就不会覆盖但是如果你对安装的插件使用不同的设置。如果您可以控制插件并防止设置冲突,则可以对options table
进行沙箱化。
在wp-config.php
中,您需要执行此操作:
if($_SERVER['SERVER_NAME'] == 'm.domain.tld'){
require_once(dirname(__FILE__).'/wp-config-mobile.php');
}else{
require_once(dirname(__FILE__).'/wp-config-mobiless.php');
}
两者必须具有相同的设置(dbname,prefix),WP_SITEURL
和WP_HOME
除外。如果您未在wp-config.php
中难以定义WP_HOME
和WP_SITEURL
,则可以使用一个文件。