0

以下のコードは、投稿に「添付」された画像の配列を返します...

$args = array(
    'post_type' => 'attachment',
    'numberposts' => -1,
    'post_status' => null,
    'post_parent' => 0
); 
$excludeImages = get_posts($args);

//var_dump

var_dump ($excludeImages)

//yields (配列の最初の 5 項目のスニペット)

array(5){[0]=> object(stdClass)#194 (24) 
        {["ID"]=> int(46) 
         ["guid"]=> string(59) "http://localhost/mysite/wp-content/uploads/avatar.png"}

質問: パターンが常に ["guid"]=> string(int) "path-to-image" である特定の配列項目から画像ファイル名 (この場合は avatar.png) を抽出するにはどうすればよいですか?

4

2 に答える 2

0

stdClass は基本的に PHP のデフォルト クラスです (ベースではありません!)。メソッドや属性はなく、空のクラスです。コンテナとして使用されます。たとえば、配列をオブジェクトにキャストすることで、このようなクラスを作成できます。

var_dump は、配列の最初の要素が ID と GUID 属性を持つ stdClass オブジェクトであることを意味します。したがって、このコードは完全な guid を取得します。

$path = $excludeImages[0]->guid;

ファイル名のみを取得したい場合は、 basename() を使用できます。

echo basename($path); // avatar.png

stdClass の詳細については、この質問を参照してください。

于 2010-11-14T00:13:25.037 に答える
0

ベース名を使用するだけです

$fileName = basename($excludeImages[0]->guid);

編集:上記のコメント者が述べたように、$excludeImages[0]["guid"] のように「guid」のインデックスを作成する代わりに、矢印表記が必要になると思います。最初はそれが物体であることに気が付きませんでした。構造化/ネストされた配列ではなく、オブジェクトの配列があるようです。

http://php.net/manual/en/function.basename.php
http://www.php.net/manual/en/function.pathinfo.php

于 2010-11-14T00:11:17.367 に答える