@tryghost/mg-wp-xml v0.3.27
Migrate WordPress XML
Export content using a WordPress XML file, and generate a zip
file you can import into a Ghost installation.
Note: This package relies on (@tryghost/mg-wp-api
)https://github.com/TryGhost/migrate/tree/main/packages/mg-wp-api to process the post & page content.
Install
To install the CLI, which is required for the Usage commands below:
npm install --global @tryghost/migrate
To use this package in your own project:
npm install @tryghost/mg-wp-xml --save
or
yarn add @tryghost/mg-wp-xml
Usage
To run a WordPress migration, the required command is:
migrate wp-xml --pathToFile /path/to/file.xml
It's possible to pass more options, in order to achieve a better migration file for Ghost:
--pathToFile
(required)- Path to XML file
- string - default:
null
-V
--verbose
- bool - default:
false
- Show verbose output
- bool - default:
--zip
- bool - default:
true
- Create a zip file
- bool - default:
-s
--scrape
- Configure scraping tasks
- string - default:
all
- Choices:
all
,img
,web
,media
,files
,none
--sizeLimit
- number - default:
false
- Media files larger than this size (defined in MB i.e.
5
) will be flagged as oversize
- number - default:
--drafts
- bool - default:
true
- Import draft posts
- bool - default:
--pages
- bool - default:
true
- Import WordPress pages
- bool - default:
--posts
- bool - default:
true
- Import WordPress posts
- bool - default:
--tags
- bool - default:
true
- Set to false if you don't want to import WordPress tags, only categories
- bool - default:
--addTag
- string - default:
null
- Provide a tag name which should be added to every post in this migration
- string - default:
--datedPermalinks
- Set the dated permalink structure.
/*/
matches any prefix, such as/articles/2018/05/
or/blog-posts/2018/05/
- string - default:
none
- Choices:
none
,'/yyyy/mm/'
,'/yyyy/mm/dd/'
,'/*/yyyy/mm/'
,'/*/yyyy/mm/dd/'
- NOTE: When using
/*/
, this is only to match existing links. Fixed links will not contain this.
- Set the dated permalink structure.
--postsBefore
- Only migrate posts before and including a given date e.g. 'March 20 2018'
- string - default:
null
--postsAfter
- Only migrate posts after and including a given date e.g. 'August 16 2023'
- string - default:
null
--cpt
- A comma-separated list of custom post type slugs e.g.
resources,newsletters
- array - default:
null
- A comma-separated list of custom post type slugs e.g.
--excerpt
- bool - default:
true
- Use the excerpt value from WordPress API
- bool - default:
--excerptSelector
- string - default:
null
- Pass in a valid selector to grab a custom excerpt from the post content, e. g.
h2.excerpt
- string - default:
--fallBackHTMLCard
- bool - default:
true
- Fall back to convert to HTMLCard, if standard Mobiledoc convert fails
- bool - default:
--removeSelectors
Pass in a string of CSS selectors for elements that will be removed, e.g. '.ads, script[src*="adnetwork.com"]'
- string - default:
null
--cache
- Persist local cache after migration is complete (Only if
--zip
istrue
) - bool - default:
true
- Persist local cache after migration is complete (Only if
A more complex migration command could look like this:
migrate wp-xml --pathToFile /path/to/file.xml --pages false --addTag News
Develop
This is a mono repository, managed with lerna.
Follow the instructions for the top-level repo.
1. git clone
this repo & cd
into it as usual
2. Run yarn
to install top-level dependencies.
Run
To run a local development copy, cd
into this directory, and use yarn dev
instead of migrate
like so:
yarn dev wp-xml --pathToFile /path/to/file.xml
Test
yarn lint
run just eslintyarn test
run lint and tests
Copyright & License
Copyright (c) 2013-2023 Ghost Foundation - Released under the MIT license.
5 days ago
21 days ago
2 months ago
4 months ago
4 months ago
5 months ago
5 months ago
9 months ago
9 months ago
10 months ago
7 months ago
7 months ago
7 months ago
11 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago