WordPress 3.6 推出了一个新的函数:get_attached_media(),使得获取一个指定日志的所有附件文件变得异常简单。WordPress教程:获取当前日志的所有附件以前如果我们要获取指定日志的所有图片:我们需要通过类似如...
WordPress 3.6 推出了一个新的函数:get_attached_media(),使得获取一个指定日志的所有附件文件变得异常简单。
WordPress教程:获取当前日志的所有附件
以前如果我们要获取指定日志的所有图片:我们需要通过类似如下的代码:
$attachments = get_posts( $args );
WordPress 3.6 新增的 get_attached_media() 函数使得这个过程更加简洁: 获取所有附件,不管什么类型:
$attachments = get_attached_media( '', $post->ID );
获取所有的音频附件:
$attachments = get_attached_media( 'audio', $post->ID );
获取所有图片附件:
$attachments = get_attached_media( 'image', $post->ID );
获取所有视频附件:
$attachments = get_attached_media( 'video', $post->ID );
上述wordpress官方的第一段代码是通过查询wp_posts表中所有post_parents字段为post_ID,并且post_type为attachment的数据,这样就会造成两个问题
1、只统计插入的图片,不统计删除的图片
2、post_parents的字段类型为BIGINT,这样只能统计一次,比如你在日志A插入了图片I,之后在日志B中再插入图片I,这样就没办法同时统计了
这样看来wordpress统计当前日志附件相当不准。 www.zzarea.com 如何修正呢 修正之前思考这么几个问题:
1、用什么来记录当前日志的附件?
2、在什么地方进行统计
3、该如何取出
关于记录日志的附件,选择了postmeta这个表来记录,增加一个meta_key;至于在什么地方统计,选择钩子save_post,整体代码如下:
大家可以通过下面的代码获取当前日志附件
get_post_meta($post_id, '_wp_post_attach_total_');
注:最后代码参考自乱炖。
特别声明:以上内容(如有图片或视频亦包括在内)为本平台用户上传并发布,本平台仅提供信息存储服务。