织梦转wordpress的是时候,特色图片怎么处理

织梦转wordpress的时候,有个需求,就是特色图片的处理。感觉这个部分,是程序转换中最麻烦一个部分,这里记录一下转换的过程。

数据从哪里来到那里去

数据的来源是织梦的 dede_uploads 表,大概可以通过下面的sql语句,把数据同步到 worppress 表中。注意 下面的sql 语句, 是有问题的。不是所有上传的资源文件都是图片, 所有 post_mime_type 就不一定正确,这里只关注特色图片的处理。就默认是 image/jpeg

INSERT into  wp_posts (
    post_author, post_date, post_date_gmt,post_content, post_title,
    post_status,comment_status, ping_status, post_name, post_type,
    post_mime_type,guid, post_excerpt, to_ping, pinged,
   post_content_filtered
) SELECT
    1,  FROM_UNIXTIME(uptime,'%Y-%m-%d %H:%i:%s'),  FROM_UNIXTIME(uptime,'%Y-%m-%d %H:%i:%s'),"", title,
   "inherit", "","closed",title,"attachment",
   "image/jpeg", concat( "https://www.wpcode.cn",  url), "", "", "",
   ""
from  dede_uploads;

wordpress 的特色图片在数据库中是怎么存储的

  1. wp_posts 表中存储媒体资源
  2. 媒体资源组需要在 在 wp_postmeta 中 ( meta_key ) _wp_attached_file存储一下资源的位置。
  3. 通过 wp_postmeta 中的 ( meta_key ) _thumbnail_id 对资源进行关联。
  4. 最后还需要更新一下元信息 ( meta_key ) _wp_attachment_metadata,这个主要是让特色图片可以正常的显示。

注意的地方

  1. 一般来说,两个程序的默认上传的路径是不用的。同步后,需要保证可以打开。可以修改一下路径,也可以增加一个 连接 (ln -s old_dir new_dir),只要能保证打开
  2. _wp_attached_file 存的内容,是不包含上传目录的。
  3. _thumbnail_id 是一个post_id, 就是媒体资源的值。
  4. _wp_attachment_metadata 元信息中有个file, 没有这值,媒体库的图片会显示不正常。