如何将thumbnail_size用于以usermeta上传的用户照片

时间:2018-01-25 11:57:44

标签: wordpress thumbnails

我在用户个人资料编辑页面中创建了一个字段,允许用户上传他们的个人资料照片。信息将保存在wp_usermeta密钥下的user_profile_image表中。

此应用程序中不会使用Gravatar,用户自己从管理员上传的照片将用作他/她的个人资料照片。

我在主题中定义了不同的缩略图大小,我可以看到正确的缩略图大小上传。

但我不知道如何将thumbnail_size与get_the_author_meta函数一起应用,就像我们对缩略图一样。有什么办法吗?

目前我正在检索用户的照片:

$profile_picture = get_the_author_meta( 'user_profile_image', $current_author->ID );

但另外我需要应用以下缩略图大小: add_image_size( 'blog-author-thumbnail', 450, 675, true); // constrain width to 450,我不知道怎么做!

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:1)

在开发插件等时,通常会通过URL检索图像ID。

我想你也可以这样做。

// retrieves the attachment ID from the file URL - put this into functions.php
function pippin_get_image_id($image_url) {
    global $wpdb;
    $attachment = $wpdb->get_col($wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE guid='%s';", $image_url )); 
    return $attachment[0]; 
}

// Next part is for displaying the image in your template etc.

// set the image url
// $image_url = 'http://yoursite.com/wp-content/uploads/2011/02/14/image_name.jpg';
// or in your case : 
$image_url = $profile_picture;

// store the image ID in a var
$image_id = pippin_get_image_id($image_url);

// retrieve the thumbnail size of our image - you can change the size - so you could use 'blog-author-thumbnail'
$image_thumb = wp_get_attachment_image_src($image_id, 'thumbnail');

// to display the image
echo $image_thumb[0];