我正在迁移此网站,其中我有很多帖子,但没有精选图片。我开始在界面上每页执行此操作,但它将永远占用。我认为使用数据库插入可能会更快。
这些帖子没有附加图像,因此我无法使用自动设置第一张图片的插件。
你们之前有没有这样做过,或者可以指点资源?
答案 0 :(得分:6)
我发现这个问题很有意思,因为我需要使用直接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将填充默认值
答案 1 :(得分:4)
在观察手头记录中的数据后,我实际上能够使其工作。我只需要使用查询来处理wp_postmeta
表:
INSERT INTO `wp_postmeta` (meta_value, meta_key, post_id) VALUES ('<post_id_of_image>', '_thumbnail_id', <target_post_id>);
希望这有助于其他人。
答案 2 :(得分:2)
步骤#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 =您要用作缩略图的图片的网址,例如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 =文件的文件名。 e.ge. 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