Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获取附件URL_Php_Wordpress - Fatal编程技术网

Php 获取附件URL

Php 获取附件URL,php,wordpress,Php,Wordpress,我正试图从WordPress获取上传的音频文件,但遇到一些问题。我需要抓取不包括域名的补丁,比如wp content/uploads/2014/09/file.mp3 我尝试使用get_attached_media(),当我var_dump()它存储在一个数组中,键为guid。我尝试了几种不同的方法,但我无法访问它。这就是结果 object(WP_Post)#2059 (24) { ["ID"]=> int(4312) ["post_author"]=> string(1)

我正试图从WordPress获取上传的音频文件,但遇到一些问题。我需要抓取不包括域名的补丁,比如
wp content/uploads/2014/09/file.mp3

我尝试使用
get_attached_media()
,当我
var_dump()
它存储在一个数组中,键为
guid
。我尝试了几种不同的方法,但我无法访问它。这就是结果

object(WP_Post)#2059 (24) {
 ["ID"]=>
 int(4312)
 ["post_author"]=>
 string(1) "3"
 ["post_date"]=>
 string(19) "2014-10-06 15:33:16"
 ["post_parent"]=>
 int(4298)
 ["guid"]=>
 string(73) "/wp-content/uploads/2014/09/file.mp3"

 }
}
为了保持简洁,我删除了大部分代码。如何访问
guid
键?我将结果存储在
$a
中,并尝试了
$a->guid
$a['guid']
$a->post->guid
以及其他方法,但没有成功


任何帮助都将不胜感激

如果查看函数的文档,您会发现它返回一个对象数组

数组按附件id编制索引,因此您不能仅通过执行
$a[0]
访问第一个元素。我建议您在使用阵列之前对其重新编制索引,如下所示:

$a = get_attached_media(...);
$a = array_values($a);
echo 'GUID: ' . $a[0]->guid;
您还可以像这样迭代所有附件

foreach ($a as $attachment) {
    echo "GUID: {$attachment->guid}\n";    
}

您是否尝试过类似于
$a[0]->guid
其中0是数组元素的索引?如果
$a
是您转储的对象,那么
$a->guid
应该可以工作。我猜你错过了什么。此外,guid字段并非在所有情况下都是可靠的。我会改为使用
get\u permalink
,然后提取路径的所需部分$a变量中的任何内容。我可以
var\u dump($a)
作为一个整体。任何其他结果都将为null。@JuanRangel我已经更新了答案,以显示这在foreach循环之外是如何工作的