Wordpress to Contentful Exporter
Note: This is a ported code with a ruby on the nodejs wordpress-exporter.rb The original repository can be viewed here.
Description
This adapter will allow you to extract content from a WordPress Blog and prepare it to be imported to Contentful.
The following content will be extracted:
- Blog with posts
- Categories, tags and terms from custom taxonomies
- Attachments
Installation
npm i -g wordpress-exporter
This will install the wordpress-exporter
executable on your system.
Setup
To extract the blog content you need to export it from the WordPress blog and save it as a XML file.
Further you need to define where the tool can find the XML file and the destination of the transformed content.
Create a settings.json
file and fill in the dataDir
and wordpressXmlPath
:
To extract the content run:
wordpress-exporter --config-file settings.yml --extract-to-json
The result will be a directory structure with the WordPress content transformed into JSON files that are ready for import.
Use the generic-importer to import your blog then to Contentful.
Step by step
-
Export the content of the blog from WordPress and save it as XML file.
-
Create YAML file with settings (eg. settings.yml) and fill in the required parameters. The generated
content types
,entries
andassets
will be saved to thedataDir
. We recommend you to usewordpress_settings/wordpress_settings.yml
file in this repository -
Extract the content from the XML file and generate the content model and JSON files for the import:
wordpress-exporter --config-file settings.yml --extract-to-jsonIf you want to create a different content model for your blog you can use
--omit-content-model
wordpress-exporter --config-file settings.yml --extract-to-json --omit-content-modelIt will only extract the content and store it as JSON, you need to take care about the content mapping yourself. See the Contentful-importer for details on how this needs to be done.
-
(Optional). HTML markup can be converted to markdown:
wordpress-exporter --config-file settings.yml --convert-markupThis will only touch the content body of a blog post, other attributes will not be changed.
-
Create your content model from JSON:
wordpress-exporter --config-file settings.yml --create-contentful-model-from-json -
Use the contentful-importer to import the content to contentful.com
-
Add you organization id and the access token to your
settings.json
-
Add the new created space id to your
settings.json
file. -
Now follow the steps (starting from step 3) of our contentful-importer guide to publish your content.