5

我正在迁移这个网站,那里有很多没有特色图片的帖子。我开始在界面上按页面执行此操作,但它需要永远。我认为使用数据库插入可能会更快。

这些帖子没有附加图像,因此我无法使用会自动将第一张图像设置为特色的插件。

你们有没有人这样做过或者可以指出我的资源?

4

3 回答 3

8

我发现这个问题很有趣,因为我需要直接使用 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 将使用默认值填充一些非空字段

于 2014-04-18T19:24:23.043 回答
5

从手头的记录中观察数据后,我实际上能够使其工作。我只需要wp_postmeta使用查询处理表:

INSERT INTO `wp_postmeta` (meta_value, meta_key, post_id) VALUES ('<post_id_of_image>', '_thumbnail_id', <target_post_id>);

希望这可以帮助其他人。

于 2013-03-23T16:09:21.543 回答
5

第 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

于 2014-09-22T18:20:15.987 回答