【发布时间】:2014-08-20 12:54:03
【问题描述】:
我有一个自定义 WordPress 元框,我可以在其中上传文件。
只有位置保存到数据库,文件(csv)保存到服务器。
在 fgetcsv 的帮助下,我将 csv 发送到页面(前端)
我希望能够在一页上有多个文件。
因此,我创建了(在互联网的帮助下)动态字段,仅在必要时添加。
该文件在wp_upload_bits 的帮助下保存到数据库中,这意味着保存了一个包含文件名和文件url 的数组。因此,为了回应它们,我使用:$file['file'] 或 $file['url']
现在的问题:
为了动态添加和删除字段,有一个 foreach 循环回显所有上传文件。
因为数组使用wp_upload_bits 保存在数据库中,所以我总是得到两个输出(文件和url),我只想要文件。
这里是代码。 我似乎无法弄清楚:
<?php
$file = get_post_meta(get_the_ID(), 'meta_box_csv', true);
$c = 0;
$i = 0;
if ( count( $file['file'] ) > 0 ) {
foreach( $file as $csv ) {
if ( isset( $csv['file']) ) {
printf( '<p><input type="file" id="meta_box_csv_'.$i.'" name="meta_box_csv_'.$c.'" value="'.$csv['file'].'" size="15" /><span class="remove">Remove</span> </p>' );
$c = $c +1;
$i = $i +1;
}
}
}
?>
【问题讨论】:
-
所以你的代码可以工作,只是你不需要
$file['url']部分并想摆脱它? -
嗯,很有趣。我没有想到这一点。我对 foreach $file 有疑问,因为它需要整个数组......你会怎么做。把url的值清空就行了?
-
我实际上仍然不确定哪个部分坏了。你的代码有效吗?
-
代码可以正常工作,这不是问题,如果我不清楚,抱歉。问题是,如果一个文件被保存,它会将两个值放在 db 中一个名为:file 和 url 的数组中。如果 foreach 运行,它会输出文件和 url。我只希望文件输出。希望这更清楚
-
我没有看到
url在上面的代码 sn-p 中是如何呈现的。你只是在引用file,所以不应该这样。
标签: php wordpress loops foreach