将文章从 Wordpress 导出到 Gatsby!WordPress 到 Hugo Exporter 基于 Docker 的 WordPress 技术栈

2025-06-09

将帖子从 Wordpress 导出到 Gatsby!

WordPress 到 Hugo 导出器

基于 Docker 的 WordPress 堆栈

我的朋友Eric过去五年一直在做一个名为“Outreach For Taiwan”的项目。这是一个充满爱意的认真工作,他利用(非常有限的)假期去不同的大学演讲,主题涵盖文化、身份认同、历史和政治等方方面面。对我来说,帮助人们了解台湾意义重大,所以我热爱并支持他所做的一切。最近,这个项目进展不顺,所以我主动提出成为Eric的官方顾问——一个可以与他交流想法的人。有时候,你只需要一个倾听者或有人向你提问,就能保持方向。我不确定我的参与是否对这个项目本身有很大帮助,但能够更深入地了解台湾的一切,对我来说非常有成就感。

好了,说回 Web 开发部分。假期期间,我想尝试一下 Gatsby 和 Netlify CMS,然后决定创建一个模拟的“台湾外展”网站,这会是一个有趣的项目。

我使用了Gatsby Netlify Starter,很快就把所有东西都运行起来了。我很喜欢 Gatsby 的文档,快速入门指南教程都写得很好,易于理解。Starter 启动后,我决定导入所有现有的 Outreach For Taiwan 博客文章。别问我为什么,我想我只是想体验一下“看到”所有文章的满足感,而我这样做的动机就是想尝试一些新鲜的东西,享受其中的乐趣。这促使我研究如何将 WordPress 文章导出为 Markdown 格式并添加到 Front Matter 中。

就在那时,我发现了这个有用的工具......

GitHub 徽标 SchumacherFM / wordpress-to-hugo-exporter

Hugo 是用 golang 编写的静态网站生成器。Wordpress 是一个远程访问服务器的工具 ;-) ❗️欢迎贡献!

WordPress 到 Hugo 导出器

Hugo 是一个用 GoLang 编写的静态站点生成器:https://gohugo.io

此 repo 基于https://github.com/benbalter/wordpress-to-jekyll-exporter

Hugo 功能

一键式 WordPress 插件,可将所有帖子、页面、分类法、元数据和设置转换为 Markdown 和 YAML,然后可放入 Hugo。

特征

  • 转换 WordPress 中的所有帖子、页面和设置以供 Hugo 使用
  • 导出用户看到的内容,而不是数据库存储的内容(the_content在导出之前通过过滤器运行帖子内容,允许第三方插件修改输出)
  • 全部转换post_content为 Markdown Extra(使用 Markdownify)
  • 将表中的所有post_meta字段转换wp_posts为 YAML 前置内容,以便 Hugo 进行解析。
  • 可选择将comments其作为帖子的一部分导出。此功能需要通过编辑 PHP 源代码手动启用。请参阅 hugo-export.php 文件第 40 行。
  • 导出私人帖子和草稿。它们也会被标记为草稿,不会发布……

根据自述文件,我需要在计算机上安装一个 WordPress 本地实例来安装该插件。由于我之前从未安装过 WordPress,所以我决定使用 docker 的方式。

GitHub 徽标 wodby / docker4wordpress

基于 Docker 的 WordPress 堆栈

基于 Docker 的 WordPress 堆栈

构建状态

介绍

Docker4WordPress 是一组针对 WordPress 优化的 Docker 镜像。使用此仓库中的 docker-compose.yml 文件,可以在 Linux、macOS 和 Windows 上为 WordPress 搭建本地环境。

WordPress 堆栈由以下容器组成:

容器 版本 服务名称 图像 默认
Nginx 1.17、1.16 nginx 沃德比/nginx
阿帕奇 2.4 apache 沃德比/阿帕奇
WordPress 5 php wodby/wordpress
PHP 7.4、7.3、7.2 php wodby/wordpress-php
MariaDB 10.4、10.3、10.2、10.1 mariadb wodby/mariadb
PostgreSQL 12、11、10、9.x postgres 沃德比/postgres
Redis 5、4 redis wodby/redis
Memcached 1 memcached wodby/memcached
6.0、4.1 varnish 沃德比/清漆
Node.js 12、10、8 node 沃德比/节点
Solr 8、7、6、5 solr 沃德比/solr
Elasticsearch 7、6 elasticsearch wodby/elasticsearch
基巴纳 7、6 kibana 沃德比/基巴纳
AthenaPDF 2.10.0 athenapdf arachnysdocker/athenapdf 服务
Mailhog 最新的 mailhog 邮猪/邮猪
OpenSMTPD 6.0 opensmtpd wodby/opensmtpd

由于我之前从未接触过 Docker,所以花了一点时间来设置实例。不过一旦设置好,将帖子导出到 Markdown 就非常简单了。最棘手的部分是我需要将仓库里的文件打包,然后将其作为插件上传到 WordPress。我或许应该在 Readme 中提交一个 PR 来明确说明这一点——事后看来这似乎很明显,但搞清楚这一点花了比我愿意承认的更长的时间。

假期占据了我剩下的时间,所以就完成了这些。不过没关系!我的目标是体验一下日常用不到的技术,而这个项目正好满足了我的需求。也许下次休息的时候,我会继续深入研究,或者尝试用一套完全不同的工具,再搭建一个模拟的“台湾外联”网站。

鏂囩珷鏉ユ簮锛�https://dev.to/jess/exporting-posts-out-of-wordpress-and-into-gatsby-1cfb
PREV
闪回星期五:DEV 们说的那些话
NEXT
成功切换到站立式办公桌的秘诀