0

在我的网站中,我允许我的用户上传头像。以下代码用于打印 URL:

$r = $r . $photoUrl = '/wp-content/uploads/userphoto/' . get_user_meta($user_info->ID, 'userphoto_thumb_file', true);

这将给我们举个例子/wp-content/uploads/userphoto/2.thumbnail.png

问题是如果用户没有上传头像,URL当然会是/wp-content/uploads/userphoto/. 所以这将是一个破碎的形象。

我想为没有头像的用户显示自定义图像,例如no-image.png。我这是通过在if (isset)那里添加一个语句来完成的?我似乎无法弄清楚如何解决这个问题。

4

5 回答 5

3

你可以使用empty

$image_id = get_user_meta($user_info->ID, 'userphoto_thumb_file', true);
$r = $r . $photoUrl = '/wp-content/uploads/userphoto/' . (empty($image_id) ? 'no-image.png' : $image_id);
于 2013-05-29T15:56:35.667 回答
0

像这样的东西应该可以工作,这取决于 get_user_meta 是否实际返回 Null。

if (is_null(get_user_meta($user_info->ID, 'userphoto_thumb_file', true))) {
    $r = $r . $photoUrl = '/wp-content/uploads/userphoto/customimage.png';
} else {
    $r = $r . $photoUrl = '/wp-content/uploads/userphoto/' . get_user_meta($user_info->ID, 'userphoto_thumb_file', true);
}
于 2013-05-29T15:56:39.447 回答
0

你可以做

if(!empty(get_user_meta($user_info->ID, 'userphoto_thumb_file', true)))
{
    $r = $r . $photoUrl = '/wp-content/uploads/userphoto/' . get_user_meta($user_info->ID, 'userphoto_thumb_file', true);
}
else
{
        $r = $r . $photoUrl = '/wp-content/uploads/userphoto/no-image.png';   
}
于 2013-05-29T15:56:50.607 回答
0

您应该测试文件是否存在:

if(!file_exists( $_SERVER['DOCUMENT_ROOT'] . $r))  { 
   $r = '/path/to/default/image.jpg';
}

使用这种方法,即使用户已经上传了头像,但由于某种原因图像不存在于服务器上,它也会显示默认头像。

于 2013-05-29T15:57:19.393 回答
0

实际上,您可以只检查函数是否返回计算结果为false. 一个空字符串false在 php 中计算为。

$img = get_user_meta($user_info->ID, 'userphoto_thumb_file', true);

if(!$img) {
    $img = 'no-image.png';
}

$r = $r . $photoUrl = '/wp-content/uploads/userphoto/' . $img;
于 2013-05-29T15:59:34.947 回答