在将Drupal迁移到WordPress时(按照官方页面上的指南),我还没有找到任何方法将Drupal"字段"迁移到WordPWordPress作为"自定义字段"。由于我是Drupal的新手,请建议我如何做到这一点。任何解决此问题的代码示例、链接或想法都将不胜感激。
附加信息:
- Drupal版本6.28;Wordpress v3.6
- 请考虑一下,我是Drupal的新手,而不是WordPress
看起来我开发了一个如何将Drupal字段作为自定义字段(post-meta)迁移到WordPress的解决方案:
首先,假设我们在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(当前节点修订的唯一id;每个节点可能有无限数量的修订)field_xxx_xxx
-字段KEY
任务是将字段移动到现有WordPress帖子中,作为此帖子的自定义字段(post_meta)。
考虑Wordpress中$TABLEPREFIX_post_meta
表的结构(Chris,你的答案是thx):
meta_id
-索引post_id
-关联岗位IDmeta_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
值(最新修订)。
这种方法并不是完全自动化的,但效果很好。希望它能有所帮助!
它们存储在wp_postmeta
表中的WordPress数据库中,具有以下字段:
-
meta_id
-索引 -
post_id
-关联后的ID -
meta_key
-字段的名称 -
meta_value
-字段的值
我不太了解Drupal是如何存储字段数据的,但只要有post-ID、键和值,你就可以创建一个查询来将其迁移到WordPress。
您可以查看WP Ultimate CSV Importer插件。这个强大的工具允许从csv文件导入帖子,它还自动创建类别和分配给帖子的自定义字段。可以在phpMyAdmin中将表从数据库导出到CSV文件。
我不知道Drupal数据库的结构,所以我不知道这有多大帮助,但这个工具在类似的情况下帮助了我。