非图像文件的WP_GENERATE_ATTACHINT_METADATA

时间:2015-11-10 作者:marcelo2605

我创建了一个用于上传图像的前端表单,效果很好。

唯一的问题是,我需要为非图像文件生成附件元数据。现在,仅为图像文件创建元数据。

我使用以下行生成和插入元数据:

$attachment_data = wp_generate_attachment_metadata( $attachment_id, $filename );
wp_update_attachment_metadata( $attachment_id, $attachment_data );

SOLVED

我核实了一下$attachment_data 为空(非图像文件,如PDF):

if(empty($attachment_data)){
    $fileMeta = array(\'file\' => $imageUrl);
    add_post_meta($attachment_id, \'_wp_attachment_metadata\', $fileMeta);
}else{
    wp_update_attachment_metadata( $attachment_id, $attachment_data );  
}

1 个回复
SO网友:s_ha_dum

wp_generate_metatadata() 应为图像、视频和音频文件类型创建元数据。有和if/elseif 有条件的in the source 这将功能限制在这三个方面。但是,最后一行是:

return apply_filters( \'wp_generate_attachment_metadata\', $metadata, $attachment_id );
所以你可以使用wp_generate_attachment_metadata 筛选以生成所需的元数据。关于创建过滤器,这里有很多答案,更不用说the Codex.

很难说得更多,因为您没有指定太多的内容,比如您有什么类型的“非图像”文件。

相关推荐

使用cURL将文件下载到wp-Includes/Uploads

我有一个保存帖子的钩子,看起来像这样,它应该根据提供的视频id将youtube缩略图下载到wp包含/上传。但这并不能挽救任何东西。 add_filter( \'save_post\', function () { $video_id = \'VSB4wGIdDwo\'; $path_to_save_thumbnails = \'/wp-includes/upload/\'; $ch = curl_init();