- PHP v7.1 or above for the composer dependencies.
- WP-CLI installed on the Wordpress host.
- Working Wordpress site from which content will be exported.
- R/W access to
wp-content/uploads
on the Wordpress site. - Composer installed on the Grav host.
- Download and move this plugin to your Wordpress's
wp-content/plugins
directory. - Run
composer install --no-dev
within thewp2grav_exporter
directory to install dependencies. - Enable it via
wp plugin activate wp2grav_exporter
or via the admin gui. - Run
wp wp2grav-all
to export all items. See other options below. - Exported files are located at
WP_ROOT/wp-content/uploads/wp2grav-exports/DATE
- For Grav v1.6 sites, https://github.com/david-szabo97/grav-plugin-admin-addon-user-manager is recommended to view and manage users. This is not required for Grav 1.7+ sites.
Running
wp wp2grav-all
will run each of the following export steps at once. Afterwards, follow each section below on how to import the new data to a Grav install.
Wordpress users on left exported to Grav on the right.
wp wp2grav-users
will generate Grav user account files.
- User accounts in the export directory under
EXPORT/accounts/
.- Usernames will be padded to a minimum of 3 characters, maximum of 16.
- If a username is truncated or padded, the username will also have the Wordpress uid to avoid collisions.
- Passwords in each account are randomly generated, and have no connection with the respective Wordpress account. The plaintext password automatically converts to a hashed_password once the account authenticates for the first time.
Copy the EXPORT/accounts
directory to your user
directory (e.g. username.yaml files should be placed at user/accounts
).
Wordpress users with roles on left exported to Grav groups on the right.
wp wp2grav-roles
will generate a Grav groups.yaml file.
Wordpress user roles export as Grav groups in a groups.yaml
file at config/groups.yaml
. Some notes about the role exporting:
- Each Wordpress role is converted to the Grav group
wp_<ROLE_WITH_UNDERSCORES>
(e.g.subscriber
becomeswp_subscriber
). - Wordpress users with administrator roles receive the
wp_administrator
group. - The
wp_administrator
group receivesadmin.super
access along withadmin.login
access. Accounts with these permissions are full admins on the site! - A new Grav group called
wp_authenticated_user
group receivesadmin.login
access. - All accounts receive the "wp_authenticated_user" group.
Copy the EXPORT/config
directory to users/config
.
Wordpress post types are converte to Grav page types, with a pre-pended "WP" in front of each type (highlighted in yellow here).
wp wp2grav-post-types
will generate a basic Grav plugin, along with page types that match the Wordpress post types.
- A Grav plugin will be generated that will present basic field functionality within the Admin tool.
- Copy the
EXPORT/plugins
directory to youruser
directory - Navigate to the Grav plugin directory
user/plugins/wordpress-exporter-helper
and runcomposer install
.
Admin view of Wordpress "Sample Page" on left exported to Grav markdown on the right.
User view of Wordpress "Sample Page" on left exported and rendered via Grav on the right.
wp wp2grav-posts
will export all posts.
- Each post/page will be exported to directories matching metadata from the post, typically the post/ page title.
- Library media will be copied to the
data/wp-content
and in-line content will (eventually) be included within the page's directory.
- Copy the
EXPORT/pages
directory to youruser
directory - Copy the
EXPORT/data
directory to youruser
directory
Admin view of WordPress General Settings on left exported to Grav Site Config on the right.
wp wp2grav-site
will export site metadata.
- Grav site metadata is stored in
EXPORT/config/site.yaml
.
- Copy the
EXPORT/config/site.yaml
directory to Grav atuser/config/site.yaml
. {% include 'partials/comments.html.twig' with {'page': page} %}