在两个不同的WordPress网站上共享相同的数据

时间:2012-04-02 14:57:07

标签: wordpress

我希望在不同域上的两个WordPress网站上提供完全相同的数据,例如blog.company.com和blog.business.com但是在同一台服务器上等。每个都有自己的主题,但共享相同的数据。因此,如果我发布一个,另一个也有该帖子。

这可能吗? 这是客户要求,所以请坚持这个想法

3 个答案:

答案 0 :(得分:2)

我会为两个站点设置1个数据库。 @Wyck关注存储在数据库中的链接,这是有效的,但快速的header.php和functions.php修改可以解决这个问题。

要设置站点以使用相同的数据,请配置wp-config.php文件以使用相同的数据库信息。

<强> WP-CONFIG

<?php 
define('DB_NAME', 'db_name');
define('DB_USER', 'db_user');
define('DB_PASSWORD', 'db_password');

// I'm not sure if you'll need a condition or not. If your database host URL is the same or not.

$site1 = ( $_SERVER['HTTP_HOST'] != 'site1.company.com' );

if ( $site1 ) {
    // site1
    define('DB_HOST', 'external-db.company.com');

} else {
    // site2
    define('DB_HOST', 'internal-db.company.com');
    // define('DB_HOST', 'localhost');

}
?>

标题

<?php ob_start('fix_links'); ?>

<强>功能

<?php 
function fix_links($input) {
    // create absolute URL fixes for both domains - this only fixes the current domain. You might have to modify it being that it seems based on the subdomain as well. 
    return preg_replace('!http(s)?://(www.)?' . $_SERVER['SERVER_NAME'] . '/!', '/', $input);
}
?>

答案 1 :(得分:1)

您可以使用FeedWordPress插件之类的东西设置联合,而不是一直导入和导出。

选择其中一个站点作为主站点。另一方面,从站点,您可以设置联合插件,每隔几个小时从主站点读取所有RSS源。这将允许每个站点对不会共享的帖子拥有自己的评论。

如果从属站点上指向主站点的链接仍然存在一些问题,您可以删除那些在the_content上使用过滤器的链接,更改任何URL引用。

答案 2 :(得分:0)

是的,除非做得好,否则可能会出现问题。

任何内部或硬编码链接都会反映创建元素的网站,因此点击blog.company.com上的帖子标题会将您带到blog.business.com,反之亦然(取决于他们创建的位置) )。

我更可靠的解决方案是使用2个数据库,并导出/导入并拥有一个更改db值以反映实际连接站点的脚本。