题
下面的代码返回一系列图像,这些图像“附加”到帖子...
$args = array(
'post_type' => 'attachment',
'numberposts' => -1,
'post_status' => null,
'post_parent' => 0
);
$excludeImages = get_posts($args);
// var_dump
var_dump ($excludeImages)
//屈服(阵列中的第5个第一个项目的片段)
array(5){[0]=> object(stdClass)#194 (24)
{["ID"]=> int(46)
["guid"]=> string(59) "http://localhost/mysite/wp-content/uploads/avatar.png"}
问题:如何从任何给定的数组项中提取图像文件名(在这种情况下为avatar.png),其中模式始终为[guid''] => string(int)“通道图像”?
解决方案
只需使用Basename即可
$fileName = basename($excludeImages[0]->guid);
编辑:正如上面提到的评论者,我认为您可能需要箭头符号,而不是为“ GUID”索引,如$ ubevudeImages [0] [“ GUID”]。我最初没有注意到它是一个对象。看来您有一系列对象,而不是结构化/嵌套数组。
http://php.net/manual/en/function.basename.php
http://www.php.net/manual/en/function.pathinfo.php
其他提示
STDClass基本上是PHP的默认类(不是基础!)。它没有任何方法或属性,它是一个空的类。它被用作容器。例如,您可以通过将数组施放到对象上来创建此类类。
您的var_dump表示数组的第一个元素是具有ID和GUID属性的STDCLASS对象。因此,此代码将检索完整的GUID:
$path = $excludeImages[0]->guid;
如果您只想检索文件名,则可以使用basename():
echo basename($path); // avatar.png
你可以看到 这个问题 有关STDClass的更多信息。
不隶属于 StackOverflow