在WordPress中获取媒体中所有文件的元数据

时间:2015-03-03 20:13:05

标签: php wordpress metadata

我需要检索非图像文件的元数据,例如word,excel或pdf文档。我能够在链接到页面或帖子时检索元数据,但是当它没有附加时,没有得到任何东西。

我尝试使用get_post_meta( $post_id );wp_get_attachment_metadata( $attachment_id );

我在使用get_post_meta( $post_id );时只获取以下信息:

Array
(
    [_wp_attached_file] => Array
        (
            [0] => 2015/03/test.xlsx
        )

    [_edit_lock] => Array
        (
            [0] => 1425404399:741
        )
)

wp_get_attachment_metadata( $attachment_id );无效。

2 个答案:

答案 0 :(得分:0)

您可以通过以下方式获取所有附件(无论是附加到帖子还是页面):

$attachments = get_posts( array('post_type' => 'attachment) );

创建一个你不想要的mime类型数组:

$exclude = array(
    'image/jpeg',
    ...
);

然后你可以看看mime类型:

foreach ($attachments as $attach) {
    if (!in_array($attach->post_mime_type, $exclude) {
    // Do what you want to do with it
    }
}

答案 1 :(得分:0)

wp_get_attachment_metadata似乎没有返回图像以外的文件(以及我猜的视频)的元数据。您仍然可以插入说明和替代文字,例如媒体上传器中的PDF文件。我假设你指的是那些领域。

Wordpress将这些值存储到post_content和post_excerpt,因此如果您知道附件的附件ID(帖子ID),那么您只需查询该帖子并打印元数据:

$pdf = get_post($attachment_id);

echo $pdf->post_content;
echo $pdf->post_excerpt;