Logo

WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)…

photo

2024年04月19日

参考WordPress官方文档地址:https://developer.wordpress.org/reference/functions/get_attached_media/

介绍及用途

WordPress[3.6.0以上] 提供了非常方便的获取指定文章ID附件的方式,方便用户获取文章的附件内容.
通常我们将这个函数用于编写例如

  1. 获取文章页所有图片,用于展示丰富的文章图片内容

  2. 我曾经看到过一个文章没有设置特色图像,却能够在文章缩略图上显示被WP裁剪过的图片地址,它不是通过直接从文章内容中获取图片地址生成,而是通过获取附件后,在返回对应的格式进行处理,这类方式比直接从文章分割出图片地址来的更为可靠.

  3. 获取文章页指定格式附件

旧的获取方式

当然,这在[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 附件所属文章仅保存第一次上传时的文章.
所以你在其它文章调用这张被上传的图片时,你将不会在(其它文章)获取到该附件.

解决方案

留给你思考(或者等我更新)

橙子主题打折出售

其实我不卖,主要是这里是放广告的,所以就放了一个
毕竟主题都没做完,卖了也是坑.

购买它
所有附件
该文章没有附件.
本文为原创文章,请注意保留出处!

之前介绍了如何让WordPress主题支持小工具的方法,默认的情况,只有不几个小工具,而且在国内...WordPress创建自定义小工具

在WordPress中如何按你的意愿显示页面,关键看你是否了解WordPress主题模板页面。这里...剖析WordPress模板文件【转】

热门文章

无法握住的故土 在我们心灵最温暖的角落,总有一寸土地是属于故乡的。虽然我们看似已远离故土,可骨子里对故乡的依恋却是从未冷却过。我们无论漂泊他乡,还是在繁华都市平步青云,可故乡的悠悠情思总会潜入梦乡与你缠绵。是儿时那一缕缕茉莉的清香萦绕在梦境,也是邻家那已锈迹斑斑的铁壶里,开出艳丽的花儿在梦的边缘摇曳。故土就这样根深蒂固地在我们的灵魂深处烙下深深的印记。 作者:Pastore Antonio
1596 浏览量
EWS(Exchange Service)基本使用(获取个人会议,会议室会议内容,会议室列表,发送会议,修改会议,删除会议) 最近公司要求和exchange服务对接,所以稍微研究了一下官方文档,做出以下总结,欢迎大家补充。先...EWS(ExchangeService)基本使用(获取个人会议,会议室会议内容,会议室列表,发送会议,修改会议,删除会议) 作者:Pastore Antonio
1585 浏览量
Sql Server 部署SSIS包完成远程数据传输 本篇介绍如何使用SSIS和作业完成自动更新目标数据任务。**温馨提示:如需转载本文,请注明...SqlServer部署SSIS包完成远程数据传输 作者:Pastore Antonio
1578 浏览量
SQL Server AG集群启动不起来的临时自救大招 背景前晚一朋友遇到AG集群发生来回切换不稳定的情况,情急之下,朋友在命令行使用命令重启WSFC集群...SQLServerAG集群启动不起来的临时自救大招 作者:Pastore Antonio
1572 浏览量
windows 下安装 memcahce 官网上并未提供Memcached的Windows平台安装包,我们可以使用以下链接来下载,你需...windows下安装memcahce 作者:Pastore Antonio
1566 浏览量