1

在将 Drupal 迁移到 WordPress 时(按照官方页面上的指南),我还没有找到将 Drupal“字段”作为“自定义字段”迁移到 WordPress 的任何方法。由于我对 Drupal 很陌生,请建议我该怎么做。任何解决此问题的代码示例、链接或想法将不胜感激。

附加信息:

  1. Drupal v6.28;WordPress v3.6;
  2. 请考虑我是 Drupal 的新手而不是 WordPress
4

3 回答 3

2

看起来我开发了一个解决方案,如何将 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 | ...

在哪里

  1. nid- 节点 ID(节点唯一 ID)
  2. vid- 版本 id(当前节点修订的唯一 id;每个节点可能有无限数量的修订)
  3. field_xxx_xxx- 字段键

任务是将字段作为此帖子自定义字段(post_meta)移动到现有的WordPress 帖子。

考虑到$TABLEPREFIX_post_metaWordpress 中表格的结构(感谢您的回答,克里斯):

  1. meta_id- 指数
  2. post_id- 相关帖子的 ID
  3. meta_key- 字段名称
  4. 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 个字段,其中

  1. post_id等于nid
  2. meta_value等于 field_xxx_xxx(替换为您的)
  3. meta_key等于字符串"field_xxx_xxx"

我们还进行了内部连接以选择最大值vid(最新版本)。

这种方法不是完全自动化的,但就像一个魅力。希望能帮助到你!

于 2013-08-22T13:18:42.450 回答
1

它们存储在wp_postmeta表中的 WordPress 数据库中,具有以下字段:

  • meta_id- 指数

  • post_id- 相关帖子的 ID

  • meta_key- 字段名称

  • meta_value- 字段值

我不太了解 Drupal 如何存储其字段数据,但只要有帖子 ID、键和值,您就可以创建查询将其迁移到 WordPress。

于 2013-08-21T20:55:11.513 回答
1

您可能会查看WP Ultimate CSV Importer Plugin。这个强大的工具允许从 csv 文件导入帖子,它还自动创建分配给帖子的类别和自定义字段。可以在 phpMyAdmin 中将表从数据库导出到 CSV 文件。

我不知道 Drupal 数据库的结构,所以我不知道这有多大帮助,但是这个工具在类似的情况下帮助了我。

于 2013-08-21T23:07:38.807 回答