WordPress网络中子网站的帖子和页面继承

时间:2013-12-20 作者:M-R

我必须开发一个多国、多语言的网站。一个国家可能有多种语言。我已经建立了WordPress网络,并为每个国家创建了子网站,如下所示。

abc.com/ > Global Website
abc.com/usa > USA Website
abc.com/fra > France Website
我通过地理定位API检测国家,并强制将其重定向到本国网站。每个国家都有自己的一套语言,例如法国将有英语和法语,默认语言为法语。我决定使用PolyLang进行语言翻译。它工作得很好。

abc.com/fra/ > default french website
abc.com/fra/en > english translation of the french website.
我面临的问题是,我在每个子网站上都有重复的英文内容。我们是否可以避免重复,子网站的英文版使用全球网站的英文页面/帖子。理想情况下,管理员应该能够选择哪个去子站点,哪个不去。

还有一个活动区,可以举办全球活动,也可以举办地方/国家级别的活动。

我可以想到以下解决方案及其缺点

ThreeWP广播插件。此插件在选择时向其他网站广播页面/帖子。这似乎是一个很好的选择,但重复了我正在避免的内容。更糟的是,我不确定它将如何与多段语言翻译一起工作。

添加“template\\u redirect”或“wp”操作,如果子网站找不到slug,并且全局站点中有相同的slug,则应填充该slug并避免404。我们还需要拦截或覆盖WP\\U查询调用,以便在全局站点上运行相同的查询并返回结果。关于PolyLang,我不确定它将如何工作。我想,这是可以解决的。这种方法很复杂,最终可能会无功而返。

有谁有更好的解决方案吗?一个插件或想法可以解决这个有趣的谜团?

我认为,这是跨国公司的常见情况。因此,必须有一个可行的解决方案。

1 个回复
SO网友:Eduplessis

R、 简单的解决方案是创建一个2-post元。

第一个是“博客id”,第二个是“帖子id”

而您使用

$blog_id = get_post_custom_values(\'blog_id\');
$post_id = get_post_custom_values(\'post_id\');

if( !empty( $blog_id ) )
switch_to_blog( $blog_id );
    $query = new WP_Query( array( \'p\' => $post_id ));
    if( $query->have_posts() ){
        while( $query->have_post() ){
            $query->the_post();   
        }
    }
restore_current_blog();
参考号:

  1. http://codex.wordpress.org/Function_Reference/switch_to_blog
  2. http://codex.wordpress.org/Class_Reference/WP_Query

结束

相关推荐

Copy Root Multisite Site

我在WordPress中创建了一个多站点安装,位于example.com 网站位于example.com/site1, example.com/site2 等是否可以创建example.com 在example.com/site3?Blog Copier 和NS cloner 由于某种原因,不允许您创建根站点的副本。这背后的技术限制是什么?