将主题特色图像转换为WordPress特色图像

时间:2016-12-19 作者:Chris Wathen

我有一个网站,我正在更新,它有400多个帖子,所以手动更新这些帖子不是一个很好的选择。不再支持使用的主题,它具有用于特色图像的自定义字段设置。我想将该特征图像转换为WordPress特征图像。我该怎么做?在数据库中,图像的url存储在wp\\u Posteta下,meta\\u键是lifestyle\\u post\\u image。

3 个回复
最合适的回答,由SO网友:Chris Wathen 整理而成

最后,我找到了另一个帮助我实现我想要做的事情的职位。https://stackoverflow.com/questions/4371929/convert-custom-field-image-to-become-featured-image-in-wordpress

$uploads = wp_upload_dir();

// Get all attachment IDs and filenames
$results = $wpdb->get_results("SELECT post_id, meta_value FROM $wpdb->postmeta WHERE meta_key = \'_wp_attached_file\'");

// Create an \'index\' of attachment IDs and their filenames
$attachments = array();
foreach ($results as $row)
$attachments[ intval($row->post_id) ] = $row->meta_value;

// Get all featured images
$images = $wpdb->get_results("SELECT post_id, meta_value AS \'url\' FROM $wpdb->postmeta WHERE meta_key = \'lifestyle_post_image\'");

// Loop over each image and try and find attachment post
foreach ($images as $image) {
if (preg_match(\'#^https?://#\', $image->url))
    $image->url = str_replace($uploads[\'baseurl\'], \'\', $image->url); // get relative URL if absolute

$filename = ltrim($image->url, \'/\');

if ($attachment_ID = array_search($filename, $attachments)) {
    // found attachment, set post thumbnail and delete featured image
    update_post_meta($image->post_id, \'_thumbnail_id\', $attachment_ID);
    delete_post_meta($image->post_ID, \'Featured Image\');
    }
}

SO网友:Rarst

从一个迁移到另一个通常并不复杂。只要你有逻辑,你就可以编写代码来实现它,然后批量运行,或者在每次请求特征图像进行渐变时将其绑定。

我看到的更大的问题是,你说图像存储为URL。WordPress通常为此操作附件ID,包括特色图像。URL对于许多相关用途来说太不方便了。

虽然从ID到URL是微不足道的,但在一般情况下,从URL到ID是巨大的痛苦。任意URL甚至可能不是本地附件。你可以看到我的答案going from URL to ID 作为起点。

总的来说,如果不了解更多的情况,就很难就具体方法提出建议。如果优先考虑访问本机UI,那么可能需要进行大容量彻底迁移。如果以前的帖子有时需要工作,那么就更容易将它们与遗留代码放在一起,然后继续使用当前内容的新工作流。

SO网友:mayersdesign

https://wordpress.org/plugins/quick-featured-images/ 很可能就是你要找的。它最近在类似的批处理情况下帮了我很大的忙,并且还有许多其他有用的特性。只需保存自定义编码即可!

相关推荐

如何让`wp-list-table`显示我在Custom-Post中的`Custom-Fields`

一切都好吗<我需要wp-list-table 也要显示custom-fields 在每个custom-post 我有,但我不知道如何做到这一点,在这幅图中,它显示了带有字段的表格:Title, Author and Publication Date: 我想要的是能够选择custom-fields 将出现,例如以下示例Title, Carta, Naipe, Author, and Date of Publication: