【问题标题】:How can I display posts from another wordpress site to my wordpress site?如何将另一个 wordpress 网站的帖子显示到我的 wordpress 网站?
【发布时间】:2018-12-02 13:51:14
【问题描述】:

我有 2 个 wordpress 博客网站。一个站点具有自定义帖子类型。我想将此自定义帖子类型中的内容显示到我的另一个 wordpress 网站?

如何做到这一点?

【问题讨论】:

    标签: wordpress custom-post-type


    【解决方案1】:

    在带有 CPT 的站点上,确保 CPT 暴露给 REST API(您可以在 CPT 代码中执行此操作),然后使用 REST API 将它们拉入您的其他站点https://developer.wordpress.org/rest-api/

    【讨论】:

    • 我试过了,但没有工作,但没有工作。可能是我看不懂这个过程。你能给我举个例子吗?
    • 您获得了完成此任务所需的资源。如果做不到,您可能需要聘请开发人员。
    • 如果两个站点不共享公共 CSS 文件,这可能无法正确呈现。 @Jamil Hossen 建议您使用命令行实用程序 curl 检索帖子以了解 REST 的工作原理。对于这么简单的事情,我认为您不应该在文档中使用 Backbone.js 客户端库。要公开 CPT,请参阅我的回答 stackoverflow.com/questions/51694650/…
    • 理论上它应该渲染得很好。毕竟,它们只是“博客”。举个例子,看看我链接了什么..
    • 这取决于 - CPT 的内容是否包含仅为其本机站点定义的 CSS 选择器。例如,它可能使用仅在本机站点上的插件实现的短代码。如果这些插件加载自定义 CSS 文件,那么这些自定义 CSS 文件将不会加载到外部站点。
    【解决方案2】:

    Ashley Brown 的回答在技术上是正确的,但对于您的问题非常简单,文档会有些混乱,因为文档描述了一般更复杂的 REST API 访问。幸运的是,您的案例非常简单,只需要很少的代码。

    首先,WordPress REST API 将返回“渲染”的帖子内容。这个“渲染”的帖子内容是将过滤器“the_content”应用于帖子内容的结果。特别是,它可能包含 CSS 选择器。重要的是,外部站点还加载 CPT 使用的本地站点的 CSS 文件。这可能意味着如果 CPT 来自插件并且该插件加载 CSS 文件,您可能需要在外部站点上安装该插件。

    其次,使用您的浏览器通过 REST API 从本机站点检索 URL。例如,尝试以下操作:

    http://localhost/wp-json/wp/v2/posts/1
    

    这将返回带有字段 content.rendered 的 JSON,在上面的 URL 中如下所示:

    <p>line first&#8230;</p>\n<p>&nbsp;</p>\n<p>AAA return &#8216;hello&#8217; . &#8216; &#8216; . &#8216;world&#8217;; ZZZ</p>\n<p>&nbsp;</p>\n<p>line last&#8230;</p>\n
    

    这只是原始的 HTML。

    因此,您可以使用 AJAX 请求来检索 JSON 对象并从该对象中提取 content.rendered 字段。然后使用 jQuery.append() (或类似的东西)将该 HTML 插入到您的 DOM 中。

    还有一件事必须启用 CPT 才能进行 REST 访问。请参阅我的post,了解如何执行此操作。

    附录

    我突然想到有人会为这种基本功能编写一个插件。我找到了这个REST API Post Embeds。我对这个插件一无所知,也许还有其他更好的插件,但是这个功能是如此基本且易于实现,必须有一个插件来做到这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-21
      • 1970-01-01
      • 1970-01-01
      • 2019-03-26
      • 2012-05-28
      • 1970-01-01
      • 2012-08-30
      • 1970-01-01
      相关资源
      最近更新 更多