WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)
参考WordPress官方文档地址:https://developer.wordpress.org/reference/functions/get_attached_media/
介绍及用途
WordPress[3.6.0以上] 提供了非常方便的获取指定文章ID附件的方式,方便用户获取文章的附件内容.
通常我们将这个函数用于编写例如
获取文章页所有图片,用于展示丰富的文章图片内容
我曾经看到过一个文章没有设置特色图像,却能够在文章缩略图上显示被WP裁剪过的图片地址,它不是通过直接从文章内容中获取图片地址生成,而是通过获取附件后,在返回对应的格式进行处理,这类方式比直接从文章分割出图片地址来的更为可靠.
获取文章页指定格式附件
旧的获取方式
当然,这在[3.6.0]以前版本,也有另外的获取方式,新的函数只是将旧的获取方式进行了打包罢了
// 旧方式,也是现在被打包的方式$args = array( 'post_parent' => $post->ID, 'post_type' => 'attachment', 'post_mime_type' => $type, 'posts_per_page' => -1, 'orderby' => 'menu_order', 'order' => 'ASC',);
新的获取函数:
get_attached_media ( string $type, int|WP_Post $post )
该函数一共需要两个参数,一个是附件类型,一个是$post全局变量或文章ID
如果你的附件类型填的是空,那么将会获得到所有的附件,如果填写的是指定的Mime type(附件类型),则会取得对应格式附件.
有哪些Mine type(附件类型)
WordPress 默认有以下附件类型 (因为你可以添加自己的附件类型)
image
video
audio
text
application
如果你想了解具体文件的附件类型,你可以参考
wp-includes/functions.php [2336 - 2447]
函数名为:wp_get_mime_types()
示例
// 获取文章中所有附件$attachments = get_attached_media( '', $post->ID );// 获取文章中所有图片$attachments = get_attached_media( 'image', $post->ID );
可能导致的问题
WordPress 附件所属文章仅保存第一次上传时的文章.
所以你在其它文章调用这张被上传的图片时,你将不会在(其它文章)获取到该附件.
解决方案
留给你思考(或者等我更新)
关键字:php, wordpress, 附件, 文章
版权声明
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!