获取Array中返回的最后一个URL

时间:2012-10-15 16:25:38

标签: php forms wordpress

我正在使用表单字段让用户编辑帖子并上传个人资料图片。

上传个人资料图片后,会将网址传递给名为“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.jpghttp://example.com/myprofile2.jpg

显然图像src不能使用数组,它需要1个URL。

我使用重力表格上传文件按钮来编辑帖子并上传图片。没有选项可以删除已经存在的当前图像(这是另一个问题:()所以只给用户一个上传按钮。

我的问题是

如何始终选择添加到“logo_header”字段的最后一个网址?

3 个答案:

答案 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());
});

从记忆中打字,但这是基本的想法。