我们可以将帖子直接导入 Wordpress 数据库吗?

Posted

技术标签:

【中文标题】我们可以将帖子直接导入 Wordpress 数据库吗?【英文标题】:Can we import posts directly into Wordpress database? 【发布时间】:2013-11-15 20:27:18 【问题描述】:

我们从 1998 年开始发布每日博客,几乎在“博客”这个词被发明之前。我们在文件夹结构中设置了静态页面,但是 /year/month/date/index.shtml + content here

我们在 2008 年 11 月切换到 Wordpress,现在正在抓取 1998-2008 年的档案并转换为 JSON... 带有标题、描述、类别、日期,然后我们使用 php 小部件来读取 JSON,转换为xml 并使用 WP RSS 上传器上传。问题是 RSS 加载器有很多错误并且失败了。它一直告诉我们帖子已经在数据库中,即使新帖子具有唯一的日期字符串和内容字符串。上传文件很小,只有3MB,PHP有足够的内存120MB,上传文件限制设置为32MB

我们注意到,如果使用 PHPMyAdmin 之类的工具从后端手动将记录添加到 wp_posts 表,则可以正常工作。由于 RSS 导入被破坏,我们想尝试将旧帖子直接批量上传到 wp_post 表中,但我们还需要添加类别。我认为这是在 wp_term_relationships 表中完成的,其中 object_id = post 表中的 post_id。

任何人都可以添加更多的光吗?他们是否需要将更多的依赖项插入到其他表中?我们只对帖子感兴趣,没有 cmets 或其他任何东西。我还需要知道 GUID 字段的标准是什么。

如果这是一个非常糟糕的主意,那么鉴于 3.6 中的 RSS 上传器已损坏,我们该怎么办?确实看到了 CVS 导入器插件,我们可以尝试一下……但我想知道我们是否可以直接在 PHPMyAdmin 或其他一些标准工具中直接导入数据库。我们只需要确保类别被插入。

【问题讨论】:

【参考方案1】:

当然可以在 PhpMyAdmin 中完成。 PhpMyAdmin > SQL

INSERT INTO `wp_posts` (`ID`, `post_author`, `post_date`, `post_date_gmt`, `post_content`, `post_title`, `post_excerpt`, `post_status`, `comment_status`, `ping_status`, `post_password`, `post_name`, `to_ping`, `pinged`, `post_modified`, `post_modified_gmt`, `post_content_filtered`, `post_parent`, `guid`, `menu_order`, `post_type`, `post_mime_type`, `comment_count`)

你的价值观从这里开始。

VALUES(1, 1, '2013-11-05 03:06:30', '2013-11-05 03:06:30', 'Old blog post content', 'Post Title', '', 'publish', 'open', 'open', '', 'Post Name', '', '', '2013-11-05 03:06:30', '2013-11-05 03:06:30', '', 0, 'http://localhost:8080/wordpress/?p=1', 0, 'post', '', 1)


我会使用 MS Office 中的邮件合并功能来创建查询。将所有旧帖子放入 Excel 电子表格。电子表格的标题行应对应于... ID`, `post_author`, `post_date`, `post_date_gmt`, `post_content`, `post_title`, `post_excerpt`, `post_status`, `comment_status`, `ping_status`, `post_password`, `post_name`, `to_ping`, `pinged`, `post_modified`, `post_modified_gmt`, `post_content_filtered`, `post_parent`, `guid`, `menu_order`, `post_type`, `post_mime_type`, `comment_count

然后,当您的 xls 文件准备好后,在 MS Word 中创建一个新文档。当您选择新收件人时,请参考您创建的 xls 列表。将合并字段插入查询中的正确位置...它看起来像这样: VALUES('<ID>','<post_author>','<post_date>'.....

【讨论】:

guid 到底是什么,为什么在使用 .../?p=1 时单个帖子页面不显示?我正在考虑复制默认值(就像从 web-UI 发布时创建的那样),但最终要使用自定义递增(唯一)帖子名称。 似乎 guid 应该像 Permalink Settings 中选择的格式一样构造,即http://localhost/2018/09/17/sample-post/ 其中sample-postpost_name。很简单。【参考方案2】:

如果您对将旧数据直接导入 WordPress 数据库感到不安,可以使用 CSV 作为中间格式。为此构建了许多插件。看起来它正在积极开发中:

http://wordpress.org/plugins/wp-ultimate-csv-importer/

【讨论】:

我也会选择 CSV 路径。【参考方案3】:

好问题。

让我们考虑写一篇文章。 那里写的所有信息都是关于 wp_post 的。 在撰写 WordPress 帖子时,您可以输入 GUId 是什么以及其他元信息。此外,任何其他信息都无法输入。

现在,

insert into 'wp_post' ('ID', 'post_author','post_date','post_date_gmt','post_content','post_content_filtered','post_title','post_excerpt','post_status','post_type','comment_status','ping_status','post_password','post_name','to_ping','pinged','post_modified','post_modified_gmt','post_parent','menu_order','post_mime_type','guid','post_category','tags_input','tax_input',meta_input');

在 phpmyadmin 中是最好的方法。

你应该看到the reference

还有一个数据库图。 [

wp_post 在图表中居中很受其他表格的欢迎。

【讨论】:

以上是关于我们可以将帖子直接导入 Wordpress 数据库吗?的主要内容,如果未能解决你的问题,请参考以下文章

ruby 我用来将我的Wordpress博客中的帖子导入到新的Jekyll中的脚本。

php Wordpress - 使用WP All Import Pro将图像导入帖子时插入图库的短代码

如何在不破坏浏览器的情况下导入大量Wordpress帖子?

使用 Twilio 和 Zapier 更改 Wordpress 帖子状态

wordpress 数据库导入问题

导入WordPress将图像作为外部URL的特色图像发布