我正在迁移这个网站,那里有很多没有特色图片的帖子。我开始在界面上按页面执行此操作,但它需要永远。我认为使用数据库插入可能会更快。
这些帖子没有附加图像,因此我无法使用会自动将第一张图像设置为特色的插件。
你们有没有人这样做过或者可以指出我的资源?
我发现这个问题很有趣,因为我需要直接使用 sql 在 wp 中插入图像,所以我进行了更多调查。首先,您需要有一个帖子或一个页面来分配特色图像。我假设您通过 wp 接口插入帖子,或调用 wp_insert_post() 或直接通过 sql 插入 $wp->post。然后你需要这篇文章的 ID,比如“target_post_id”。
现在您需要在数据库中插入一个图像。再一次,您可以使用前面的任何方法,但为了快速,我将所有预先调整大小的图像加载到 a 中并使用 sql 插入它们:
INSERT INTO $wp->post (post_type, guid, status, post_mime_type) VALUES ('attachment', '<images_url>', 'publish', 'image/jpeg')
最后一步是将帖子绑定到图像,如 cr8ivecodesmith 所回答:
INSERT INTO $wp->postmeta (meta_value, meta_key, post_id) VALUES ('<post_id_of_image>', '_thumbnail_id', '<target_post_id>');
wp db 将使用默认值填充一些非空字段
从手头的记录中观察数据后,我实际上能够使其工作。我只需要wp_postmeta
使用查询处理表:
INSERT INTO `wp_postmeta` (meta_value, meta_key, post_id) VALUES ('<post_id_of_image>', '_thumbnail_id', <target_post_id>);
希望这可以帮助其他人。
第 1 步在您的 wp_posts 表中插入一条记录作为您的附件
INSERT INTO wp_posts (post_type, guid, post_status, post_mime_type,post_parent) VALUES ('attachment', '".$filename."', 'inherit', 'image/jpeg',".$parentpostid.");
$filname = 要用作缩略图的图像的 URL,例如http://yourdomain.com/wp-content/uploads/2014/09/thumbnail.jpg
$parentpostid = 您要附加缩略图的帖子的 post_id。
步骤 #2 在 wp_postmeta 上为您的附件创建一个帖子元记录
INSERT INTO wp_postmeta (meta_value, meta_key, post_id) VALUES ('".$filename."', '_wp_attached_file',".$attachmentid.");
$filename = 文件的文件名。例如 2014/09/thumbnail.jpg $attachmentid = 在第 1 步创建的附件帖子的 post_id
步骤#3 创建一个帖子元记录,以将附件帖子标识为您要将缩略图附加到的帖子的缩略图。
INSERT INTO wp_postmeta (meta_value, meta_key, post_id) VALUES (".$attachmentid.", '_thumbnail_id',".$parentpostid.");
$parentpostid = 您希望缩略图附加到的帖子的 post_id。
$attachmentid = 在第 1 步创建的附件帖子的 post_id