具有单一共享定制帖子类型的多站点,同时保留站点URL

时间:2013-05-28 作者:Tom Auger

小型多站点设置,两个非常不同的站点,都需要访问event 自定义帖子类型。我不想重复帖子(有一些插件可以将帖子“广播”到网络)。

switch_to_blog(1) 会让我半途而废,在哪里blog 1 是包含event 数据,以及列出所有事件的存档样式页面。但我担心的是,从blog 2 将指向blog 1, 然后permalink会将用户带到另一个博客,让用户感到困惑。

是否有一种解决方案(可能使用重写)允许在//blog1/events/event1 显示为//blog2/events/event1 从中查看时blog 2?

2 个回复
最合适的回答,由SO网友:fuxia 整理而成

有两种选择:

在博客2上注册CPT\'show_ui\' => FALSE. 将博客1连接到save_post 并将数据复制到博客2。

Pro:你可以在这些帖子中搜索。将自动使用正确的模板

  • Register an endpoint 使用类似于博客1上的CPT的URL方案(EP_ROOT).

    Pro:无重复数据

  • SO网友:Tom Auger

    决定哪个博客将包含“记录数据”,使用"show_ui" => false 然后修改处理该帖子的查询以使用相应的表前缀。数据仍将在您正在查看的任何博客的上下文中填充(即:site_url() 将按预期工作,并且您的模板和主题将是正确的(假设您为不同的博客使用不同的模板和主题),并且您不会在任何地方有重复的数据。

    缺点是,在博客网络非常庞大的情况下,这可能会变得难以管理。

    这也意味着你必须访问“记录博客”才能输入和更新帖子数据,除非你也准备好挂接到save_post 并欺骗他们将数据写入其他博客的表中。然后,您还需要伪造该帖子类型的列表表,并编辑帖子请求,这至少让人望而生畏。

    此解决方案适用于一段内容,该内容将由有权访问主博客的管理员维护,但需要发布到网络上的其他博客或在其上可见;网络上其他博客的管理员/用户创建的内容不适合与该网络上的其他博客共享。有关该方法,请参见toscho\'s answer here.

    结束

    相关推荐

    正在尝试在WordPress MultiSite中输出“访问次数最多的博客”列表

    有人知道如何从Wordpress Multisite中获得“访问量最大”的列表吗?我有很多博客,一直在寻找一种方法来输出前10/20个访问量最大的博客列表,但找不到任何插件或代码片段。示例-如本网站右侧的列表(非WP)http://blogg.se/