- Issue created by @natts
I've been importing from a WordPress XML export where all of the ~50,000 comments were posted on the WordPress site by anonymous users (i.e. they didn't have user accounts on the WordPress site). Whatever they entered for their names, e-mail addresses, web URLs, and their recorded IP address, are all in the XML, along with both wp:comment_date
and wp:comment_date_gmt
tags.
However, the Wordpress Migrate import migration would never successfully save their names or e-mail addresses in the Drupal database comment_field_data
table, though would cope fine with the homepage
(web URL) and hostname
(IP address) fields/columns. It would also incorrectly use the comment_date
for the Drupal created
and changed
fields, instead of comment_date_gmt
(which is essentially the correct date/time in UTC).
Don't assume that comment authors have corresponding WordPress/Drupal user accounts, and use the standardised date/time instead of a local one.
I got around the user account issue simply by setting the uid
of the comment to zero, for an anonymous user, for all comments. This allowed the name
and mail
fields to be imported as expected. Ideally there would be some kind of check to see if the comment author user exists, and then if not to take this anonymous route.
I updated the wordpress_comment.yml
migration from this module as follows, before starting a whole WordPress migration from scratch. I added a constant at the end of the source
section:
constants:
anonymous: 0
Then added a uid
field at the end of the process
section:
uid:
constants/anonymous
I also amended the original line 90 to use comment_date_gmt
instead of comment_date
.
Active
Code