我正在使用表单字段让用户编辑帖子并上传个人资料图片。
上传个人资料图片后,会将网址传递给名为“logo_header”的隐藏自定义文字字段。我在PHP模板中读取了此URL,并使用它来显示图像,如下所示。
<?php $logo = get_post_meta($post->ID, 'logo_header', true); ?>
<div class="profileLogo"><img src="<?php echo $logo; ?>" /></div>
我的问题是,当用户决定更新他们的照片(基本上更改照片)时,新网址刚刚添加到当前照片的末尾,我想这会创建一个数组。所以就像
http://example.com/myprofile.jpg,http://example.com/myprofile2.jpg
显然图像src不能使用数组,它需要1个URL。
我使用重力表格上传文件按钮来编辑帖子并上传图片。没有选项可以删除已经存在的当前图像(这是另一个问题:()所以只给用户一个上传按钮。
我的问题是
如何始终选择添加到“logo_header”字段的最后一个网址?
答案 0 :(得分:2)
尝试$logo = array_pop(get_post_meta($post->ID, 'logo_header', false));
使用false参数,您将获得所有元字段的数组。我们只能假设它们将以正确的顺序插入和返回,因此 array_pop()将拉出列表中的最后一个。
修改 - 如果您并不总是拥有多个徽标,则应使用此功能:
$logo = get_post_meta($post->ID, 'logo_header', false);
$logo = is_array($logo) ? array_pop($logo) : $logo;
答案 1 :(得分:1)
$logo = get_post_meta($post->ID, 'logo_header', true);
$logoImgSrc = is_array($logo) ? end($logo) : $logo;
<div class="profileLogo">
<img src="<?php echo $logoImgSrc ; ?>" />
</div>
答案 2 :(得分:0)
我认为你不应该使用隐藏文本字段,而是隐藏输入字段,当用户选择新图像时(文件change()函数,在jQuery中)将隐藏字段值设置为新url,替换旧的,然后发布隐藏的字段名称。
编辑以寻求帮助:
$("#browse_box").change(function() {
$("#hidden_field").val($(this).val());
});
从记忆中打字,但这是基本的想法。