如何将自定义MySQL DB表导入到WordPress自定义POST类型

时间:2017-02-20 作者:lz430

到目前为止,我所做的是创建一个插件,该插件创建一个自定义帖子类型,获取一个字段(来自自定义DB的ID),并创建几个页面模板。

我有一个自定义MySQL DB,它与WP安装在同一台服务器上。我需要的是将MySQL DB表导入到WP自定义post类型中。

我不知道如何使用PHP将数据本身直接从一个MySQL DB导入WP。关键是,每当更新自定义MySQL DB时,我都需要这样做。

如果有帮助的话,我们确实有一个可以使用的REST API。我只是想尽量不插手。

非常感谢您的帮助!!

2 个回复
SO网友:WebElaine

WordPress帖子不存储在单个表中。Posteta存储在其他地方,当然每个表都有自己的格式。如果您直接在WordPress中发布内容(帖子、页面、附件等),您可能会很快遇到帖子ID问题。即使不是这样,也可能需要一些相当重要的数据操作来将非WP数据转换为WP可用结构。

在这种情况下,我想说REST API将是一种更好的方式,而且它还将更具前向兼容性。

SO网友:Phoenix Online

我不确定这会有多大帮助;但我在迁移平台时也做过类似的事情;或者在WooCommerce和销售点系统之间执行同步。

我建议制作一个PHP脚本(位于WordPress中的plugins文件夹中,例如/wp-content/plugins/my-importer/import/import.php), 它挂接到本机WordPress框架中,但不加载主题(这允许您使用wp_insert_post(),wp_update_post(), update_post_meta(), 等无需加载不需要的输出)。

设置脚本,使其接触REST API,请求任何更新;收集所需信息;然后使用本机WordPress函数根据需要添加和更新信息。

您可能会使用wget 通过cron定期触发导入。

我知道这有点笼统;但它可能会为你指明正确的方向。

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请