Php 获取数组中返回的最后一个URL

Php 获取数组中返回的最后一个URL,php,forms,wordpress,Php,Forms,Wordpress,我使用表单字段让用户编辑帖子并上传个人资料图像 一旦他们上传了配置文件图像,URL就会被传递到一个名为“logo_header”的隐藏自定义文本字段。我在PHP模板中读取此URL,并使用它显示图像,如下所示 <?php $logo = get_post_meta($post->ID, 'logo_header', true); ?> <div class="profileLogo"><img src="<?php echo $logo; ?>"

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

一旦他们上传了配置文件图像,URL就会被传递到一个名为“logo_header”的隐藏自定义文本字段。我在PHP模板中读取此URL,并使用它显示图像,如下所示

<?php $logo = get_post_meta($post->ID, 'logo_header', true); ?>

<div class="profileLogo"><img src="<?php echo $logo; ?>" /></div>

" />
我的问题是,当用户决定更新他们的照片(基本上是更改照片)时,新的URL只是添加到当前照片的末尾,我猜这会创建一个数组

,

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

我使用gravity forms upload file(重力表单上载文件)按钮编辑帖子并上载图像。没有选项删除已存在的当前图像(这是另一个问题:(),因此用户只获得一个上载按钮

我的问题是


我如何始终选择添加到“logo\u header”字段的最后一个URL?

尝试
$logo=array\u pop(get\u post\u meta($post->ID,'logo\u header',false));

使用false参数,您将得到一个包含所有元字段的数组。我们只能假设它们将以正确的顺序插入和返回,因此array\u pop()将提取列表中的最后一个

编辑-对于不总是有多个徽标的情况,应使用以下方法:

$logo = get_post_meta($post->ID, 'logo_header', false);
$logo = is_array($logo) ? array_pop($logo) : $logo;

试试
$logo=array\u pop(get\u post\u meta($post->ID,'logo\u header',false));

使用false参数,您将得到一个包含所有元字段的数组。我们只能假设它们将以正确的顺序插入和返回,因此array\u pop()将提取列表中的最后一个

编辑-对于不总是有多个徽标的情况,应使用以下方法:

$logo = get_post_meta($post->ID, 'logo_header', false);
$logo = is_array($logo) ? array_pop($logo) : $logo;

我认为当用户选择新图像(jQuery中的files change()函数)时,不应该使用隐藏文本字段,而应该使用隐藏输入字段,将隐藏字段值设置为新url,替换旧url,然后发布隐藏字段名

编辑以获得可能的帮助:

$("#browse_box").change(function() {
    $("#hidden_field").val($(this).val());
});

从内存中键入,但这是最基本的想法。

我认为当用户选择新图像时,不应该使用隐藏文本字段,而应该使用隐藏输入字段(jQuery中的files change()函数),将隐藏字段值设置为新url,替换旧url,然后发布隐藏字段名

$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>
编辑以获得可能的帮助:

$("#browse_box").change(function() {
    $("#hidden_field").val($(this).val());
});
从内存输入,但这将是基本思想。

$logo=get\u post\u meta($post->ID,'logo\u header',true);
$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>
$logoImgSrc=is_数组($logo)?end($logo):$logo; " />
$logo=get\u post\u meta($post->ID,'logo\u header',true);
$logoImgSrc=is_数组($logo)?end($logo):$logo;
" />

你在$logo?数组中得到了什么?好问题,是的,我在$logo?数组中得到了什么?好问题,是的,我在$logo?数组中得到了什么?是标量($post->ID)){$logo=$post->ID;}如果(是标量($post->ID)){$logo=$post->ID;}你在$logo=数组中得到了什么; }抱歉,我指的是隐藏输入“文本字段”-我将其隐藏,因为用户不知道如何处理它,因为它只是一个放在那里的URL,所以我可以抓取它。如果你认为我可以用你建议的内容替换当前值,那将非常棒,但我不知道如何执行你的建议,对此有任何其他建议吗?抱歉,我指的是隐藏输入“文本字段”-我将其隐藏,因为用户不知道如何处理它,因为它只是一个放在那里的URL,所以我可以抓取它。如果你认为我可以用你建议的内容替换当前值,那将非常棒,但我不知道如何做你建议的内容,还有其他建议吗?实际上我谈得太快了。这个解决方案没有考虑到在开始时可能只有一个url,而不是一个数组,因此字段将相等url在开始处,而不是数组,因此字段将相等..www.example.com然后当我添加一个图像时,您的代码可以工作,但当我只有一个图像时,它就不能工作。您可以针对该场景更新它吗?