【问题标题】:Migrate Drupal fields to WordPress as custom fields将 Drupal 字段作为自定义字段迁移到 WordPress
【发布时间】:2013-08-24 08:45:25
【问题描述】:

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

附加信息:

  1. Drupal v6.28; WordPress v3.6;
  2. 请注意我是 Drupal 的新手,而不是 WordPress

【问题讨论】:

    标签: mysql wordpress drupal database-migration


    【解决方案1】:

    看起来我开发了一个解决方案,如何将 Drupal 字段作为自定义字段(发布元)迁移到 WordPress:

    首先,假设我们在 Drupal 下有一个自定义内容类型。假设它有一个“键”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 - 字段键

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

    考虑到 Wordpress 中 $TABLEPREFIX_post_meta 表的结构(感谢您的 answer,Chris):

    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 值(最新版本)。

    这种方法不是完全自动化的,但效果很好。 希望对您有所帮助!

    【讨论】:

      【解决方案2】:

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

      • meta_id - 索引

      • post_id - 相关帖子的 ID

      • meta_key - 字段名称

      • meta_value - 字段值

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

      【讨论】:

      • 感谢您的回答,但老实说,这对我没有帮助,因为我是 Drupal 的新手,而且它的数据库结构与 Wordpress 不同。所以,从技术上讲,问题是如何处理 Drupal 结构。
      • 我查看了一个 Drupal 6 数据库,它有一个名为 content_field_XXXX 的表。否则我无法做出正面或反面。
      • 感谢您提供的信息,您说得对,这个名称模式描述了 Drupal 字段表。但它仅包含 Field 实例,我想了解有关它如何与内容绑定的更多详细信息。很抱歉占用您的时间,除非我得到详细的答案,否则我很乐意接受您的回答。
      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多