将自定义字段图像转换为WordPress中的特色图像?

问题描述:

我运行css画廊,我需要将自定义字段中的图库中的所有图像转换为特色图像。

有没有人有任何建议我怎么能这样做?

I run a css gallery and I need to convert all the images in the gallery from a Custom Field to become the Featured Image.
Does anyone have any advice how I could do this?

好的,首先,如果你想完全避开TimThumb并且你的图像目前尺寸不合适,你会需要找到可以批量调整媒体库大小的插件

OK, firstly, if you want to avoid TimThumb entirely and your images aren't currently the right size, you'll need to find a plugin that can batch resize your media library.

完成后,我们可以尝试自动执行查找每个特色图像附件的过程(即 wp_posts table),并设置帖子缩略图。

Once you've done that, we can attempt to automate the process of finding the attachment for each featured image (that is, the post entry in the wp_posts table), and setting the post thumbnail.

$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 = 'Featured 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');
    }
}



免责声明



无法保证上面的代码能够正常运行,它完全基于我迄今为止评估的信息 - 这更像是一个建议,而不是一站式解决方案。

Disclaimer

There is no guarantee that the code above will work, it's purely based on the information I have gauged from your comments so far - it's more of a suggestion than a one-stop solution.