使用魔域图像-带有缩略图的上传器

时间:2011-09-01 作者:juliusk

我经常使用魔法域,让我的客户和用户能够将特定内容上传到他们的网站。有没有办法根据图像的大小来调用图像?目前我刚刚发布了图片,人们上传了。但现在我需要一个解决方案,从上传的图片中获得特定的大小。

我知道Magic Fields使用wordpress的默认图像上传程序,默认情况下会创建预定义的大小。在用上传的图像调用magic field时,有没有办法获得这些尺寸?

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

通过WP image uploader上传时,Magic fields不一定会将图像附加到帖子上,而且获取与图像关联的ID也不是那么简单。插件有自己的功能来检索不同的大小:

$image_attributes = "w=250&h=150&zc=c&q=90"; // 250x150px, crop to center, quality 90
echo get_image(\'my_field_name\',1,1,1,NULL,$image_attributes);
动态生成新大小,然后缓存以供将来使用。看见get_image() 在Magic Fields wiki中。

SO网友:Samantha

抱歉,我知道这是一个老问题,但我一直在寻找同一个问题的解决方案,并想出了一个相当可怕的解决方案:

global $wpdb;
$getimage = get(\'fieldname\',$group,1,1,$post->ID); // Magic Fields \'get\' syntax
$query = "SELECT ID FROM wp_posts WHERE guid=\'".$getimage."\'";
$results = $wpdb->get_results($query);
$attachment = $results[0];
$image = wp_get_attachment_image_src($attachment->ID,\'image-size\');
$imageurl = $image[0];
我需要获取图像URL,而不是输出img 标记,以便我可以将其用作背景图像。代替\'image-size\' 在第6行使用您定义的任何图像大小。

希望这有帮助!

编辑:我已压缩为一个函数:

在函数中。php

// Add image size - as per WP
add_image_size(\'image-size\',50,50,true);

// Get WP image size from Magic Field
function mftoimgsize($fieldname, $group, $postID, $imagesize) {
global $wpdb;
$getimage = get($fieldname,$group,1,1,$postID);
$query = \'SELECT ID FROM \'.$wpdb->base_prefix.\'posts WHERE guid="\'.$getimage.\'"\';
$results = $wpdb->get_results($query);
$attachment = $results[0];
$image = wp_get_attachment_image_src($attachment->ID,$imagesize);
$imageurl = $image[0];
return $imageurl;
}   
在模板中:

<?php echo mftoimgsize(\'mf-field-name\', $group , $post->ID, \'image-size\'); ?>

SO网友:Chip Bennett

不知道Magic Fields插件的具体工作原理:

如果Magic Fields使用核心上传器,我假设通过Magic Fields添加的图像将作为附件附在帖子上$post->ID.$post->ID 对于给定的图像,传递$post->IDwp_get_attachment_image( $attachment_id, $size )

结束

相关推荐