在同一个数据库中使用不同主题的两个wordpress网站

时间:2015-09-11 12:33:21

标签: php wordpress wordpress-plugin

我想从同一个数据库运行2个wordpress站点, one.site.com two.site.com 。除了主题外,一切都保持不变。

  • one.site.com - 现有网站
  • two.site.com - 应该使用one.site.com的数据库,除了 主题

有什么办法可以做到吗?

由于主题详细信息存储在wp_options表中, two.site.com 是否可以使用它来显示不同的主题?说重复该表并使 two.site.com 使用它?

我感谢任何帮助。

编辑:

这两个网站都没有任何插件。

4 个答案:

答案 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')))函数中添加

我在这里找到了这个解决方案,https://wordpress.stackexchange.com/questions/84313/how-to-run-two-wordpress-blogs-with-different-themes-and-with-single-database-an#answer-175494

由于我们使用相同的数据库,因此两个站点上的链接都是相同的。我链接了很多图像,然后使用

将其删除
.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 调用可能是一种更简洁的解决方案。