添加来自自定义域的URL作为‘特色图像’。代码不起作用

时间:2011-07-28 作者:josh

我正在尝试将站点迁移到WP。我们有一大堆图片,我做了一些研究,我认为我最好的办法是用CSV导入数据,将图像的相对URL存储为自定义字段。

所以我发现this --这看起来很理想——我就是这样实现的(在functions.php中,当我遇到“无对象”错误时,添加了一个全局调用):

function store_cf_featured_image() {
global $post,$wpdb;

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


}


}

add_action( \'init\', \'store_cf_featured_image\' );
然而,当我在自定义字段“featured\\u image”中放置链接并保存它时。。。没有什么没有错误,但什么都没有。我更新了帖子并返回,但链接仍然只是自定义字段的链接,没有设置“特色图片”。

有人知道问题是什么吗?我现在认为这会将图像存储为内置“媒体库”的一部分,对吗?

我是否能够修改这段代码,以便从自定义字段中为每个图像引入Alt文本等。

非常感谢您的任何意见!谢谢

1 个回复
最合适的回答,由SO网友:helgatheviking 整理而成

那么您的图像已经在自定义字段中了?

您可以使用获取图像插件。。。。我知道它会从自定义字段中提取你的缩略图,我想它可能会自动将其设置为特色图像,虽然已经有一段时间了,但我不确定
http://wordpress.org/extend/plugins/get-the-image/

结束

相关推荐

Resizing all images

我刚刚更改了博客的主题,由于页面宽度很小,它打破了布局。我之前的大多数图片(附在帖子中)的宽度都在600px左右,现在我需要按450px的比例调整它们的大小。如何一次性调整它们的大小?有这个插件吗?P、 美国:编写CSS规则是一个很好的选择,我已经做到了。但我认为调整图像大小也会减少每个页面的下载开销!