在将Drupal迁移到WordPress时(遵循official page上的指南),我还没有找到任何方法将Drupal“Fields”迁移到WordPress作为“自定义字段”。由于我对Drupal很新,请建议我该怎么做。任何代码示例,链接或想法,以解决此问题将不胜感激。
其他信息:
答案 0 :(得分:2)
看起来我开发了一个解决方案,如何将Drupal Fields作为自定义字段迁移到WordPress(post meta):
首先,假设我们在Drupal下有一个自定义内容类型。假设它有一个“键”my_custom_type
,那么,如果此内容类型有字段,则数据库将有一个名为
`content_type_my_custom_type`
此表格将包含与此内容类型相关的字段。例如:
nid | vid | field_xxx_xxx | field_yyy_yyy | ...
_______________________________________________
10 | 1 | the_value_x01 | the_value_y01 | ...
11 | 2 | the_value_x11 | the_value_y11 | ...
11 | 3 | the_value_x12 | the_value_y12 | ...
11 | 4 | the_value_x13 | the_value_y13 | ...
其中
nid
- 节点ID(节点UNIQUE id)vid
- 版本ID(当前节点修订版的UNIQUE ID;每个节点可能有无限数量的修订版)field_xxx_xxx
- 字段KEY 任务是将字段移动到现有 WordPress帖子,作为此帖子自定义字段(post_meta)。
考虑Wordpress中$TABLEPREFIX_post_meta
表的结构(对你的answer,Chris):
meta_id
- index post_id
- 相关帖子的ID meta_key
- 字段名称meta_value
- 字段值,我们可以使用此查询:
INSERT INTO wordpress.wp_postmeta
(post_id, meta_value, meta_key)
SELECT
tt.nid `post_id`,
tt.field_xxx_xxx `meta_value`,
'field_xxx_xxx' `meta_key`
FROM drupal.content_type_my_custom_type tt
INNER JOIN
(
SELECT nid, MAX(vid) AS MaxVID
FROM temp.content_type_my_custom_type
GROUP BY nid
) groupedtt ON tt.nid = groupedtt .nid AND tt.vid = groupedtt.MaxVID
澄清:我们已插入3个字段,其中
post_id
等于nid
meta_value
等于field_xxx_xxx
(替换为您的)meta_key
等于字符串"field_xxx_xxx"
我们还进行内连接以选择最大vid
值(最新修订版)。
这种方法不是完全自动化的,但却像魅力一样。 希望它有所帮助!
答案 1 :(得分:1)
它们存储在wp_postmeta
表中的WordPress数据库中,包含以下字段:
meta_id
- index
post_id
- 相关帖子的ID
meta_key
- 字段名称
meta_value
- 字段的值
我不太了解Drupal如何存储其字段数据,但只要有帖子ID,密钥和值,您就可以创建一个查询来将其迁移到WordPress。
答案 2 :(得分:1)
您可以查看WP Ultimate CSV Importer Plugin。这个功能强大的工具允许从csv文件导入帖子,它还会自动创建分配给帖子的类别和自定义字段。将表从数据库导出到CSV文件可以在phpMyAdmin中完成。
我不知道Drupal数据库的结构,所以我不知道这有多大帮助,但是这个工具在类似情况下帮助了我。