在将 Drupal 迁移到 WordPress 时(按照官方页面上的指南),我还没有找到将 Drupal“字段”作为“自定义字段”迁移到 WordPress 的任何方法。由于我对 Drupal 很陌生,请建议我该怎么做。任何解决此问题的代码示例、链接或想法将不胜感激。
附加信息:
- Drupal v6.28;WordPress v3.6;
- 请考虑我是 Drupal 的新手而不是 WordPress
在将 Drupal 迁移到 WordPress 时(按照官方页面上的指南),我还没有找到将 Drupal“字段”作为“自定义字段”迁移到 WordPress 的任何方法。由于我对 Drupal 很陌生,请建议我该怎么做。任何解决此问题的代码示例、链接或想法将不胜感激。
附加信息:
看起来我开发了一个解决方案,如何将 Drupal 字段作为自定义字段(post meta)迁移到 WordPress:
首先,假设我们在 Drupal 下有一个自定义内容类型。假设它有一个“key” my_custom_type
,那么,如果这个 Content Type 有 Fields 数据库将有一个名为
`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(节点唯一 ID)vid
- 版本 id(当前节点修订的唯一 id;每个节点可能有无限数量的修订)field_xxx_xxx
- 字段键任务是将字段作为此帖子自定义字段(post_meta)移动到现有的WordPress 帖子。
考虑到$TABLEPREFIX_post_meta
Wordpress 中表格的结构(感谢您的回答,克里斯):
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 如何存储其字段数据,但只要有帖子 ID、键和值,您就可以创建查询将其迁移到 WordPress。
您可能会查看WP Ultimate CSV Importer Plugin。这个强大的工具允许从 csv 文件导入帖子,它还自动创建分配给帖子的类别和自定义字段。可以在 phpMyAdmin 中将表从数据库导出到 CSV 文件。
我不知道 Drupal 数据库的结构,所以我不知道这有多大帮助,但是这个工具在类似的情况下帮助了我。