我希望在不同域上的两个WordPress网站上提供完全相同的数据,例如blog.company.com和blog.business.com但是在同一台服务器上等。每个都有自己的主题,但共享相同的数据。因此,如果我发布一个,另一个也有该帖子。
这可能吗? 这是客户要求,所以请坚持这个想法
答案 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值以反映实际连接站点的脚本。