我想从同一个数据库运行2个wordpress站点, one.site.com 和 two.site.com 。除了主题外,一切都保持不变。
有什么办法可以做到吗?
由于主题详细信息存储在wp_options
表中, two.site.com 是否可以使用它来显示不同的主题?说重复该表并使 two.site.com 使用它?
我感谢任何帮助。
编辑:
这两个网站都没有任何插件。
答案 0 :(得分:5)
以下解决方案为我完成了工作,
在一个数据库上安装2个WordPress站点。
在数据库中创建新表。将其称为wp_options2
并将所有内容从wp_options复制到此新表
在第二次安装中转到wp-config.php,在if (!defined('ABSPATH'))
之前添加define( 'M7_OPTIONS_TABLE', 'wp_options2');
在第二次安装中,转到第1009行的wp-includes / wp-db.php并添加代码:
if (isset( $tables['options'] ) && defined('M7_OPTIONS_TABLE')) $tables['options'] = M7_OPTIONS_TABLE;
这些代码应在public function tables
if (isset( $tables['users']) && defined('CUSTOM_USER_TABLE')))
函数中添加
由于我们使用相同的数据库,因此两个站点上的链接都是相同的。我链接了很多图像,然后使用
将其删除.single a[href$=".jpg"] {
pointer-events: none;
cursor: default;
}
答案 1 :(得分:3)
您可以从单个数据库运行两个站点,但不能从同一组数据库表运行,因为存储的数据包括站点的域名。
选项表中有两个值:siteurl和home。即使您为每次php运行强制更新选项,使用相同的选项表也行不通。
所以你需要使用两个数据库。
编辑:
我的建议是复制基础并在不同的数据库上运行这两个站点。
答案 2 :(得分:1)
这可以通过使用通配符子域(https://codex.wordpress.org/Configuring_Wildcard_Subdomains)完成。
可能有点hacky,但是您必须测试子域的条件(可能在wp-config.php中?)并在数据库中设置主题(http://www.inmotionhosting.com/support/edu/wordpress/change-theme-in-db)。
我能看到的唯一问题是你的functions.php可以改变WP功能,所以带有两个子主题的父主题可能是一个好主意(https://codex.wordpress.org/Child_Themes)。
答案 3 :(得分:0)
https://wordpress.stackexchange.com/q/65560/wp-multisite-load-content-from-site-x-on-site-y 的副本
有人可能会争辩说,与手动修改数据库架构并弄乱 WP 访问方式相比,使用 WP multisite-network 功能并向一个主题添加几个记录的 API 调用可能是一种更简洁的解决方案。