在Wordpress后台里面有个选项是 多媒体->媒体库 里面显示的是所有文章的附件,包括了图片、视频、文件等。我们在开发Wordpress的时候,有时候需要列出文章中相应的附件,可以通过下面的方式来解决:
$args = array( 'caller_get_posts' => 1, 'paged' => $paged ); query_posts($args); if ( have_posts() ) : while ( have_posts() ) : the_post(); $images =get_children( array ( 'post_parent' => $post->ID, 'post_type' => 'attachment', 'post_mime_type' => 'image' )); if ( empty($images) ) { // no attachments here } else { foreach ( $images as $attachment_id => $attachment ) { echo wp_get_attachment_image( $attachment_id, 'full' ); } } endwhile; else: <p><?php _e('Sorry, this page does not exist.'); ?></p> <?php endif; ?>
其中get_children方法可以得到这篇文章的附件,包括视频、图像、pdf文件等等。本文是获取相应文章的图片,然后通过wp_get_attachment_image函数获取图片的绝对地址,wp_get_attachment_image函数的原型为
wp_get_attachment_image( $attachment_id, $size, $icon, $attr );
这里提一下第二个参数($size),它是需要显示图片的大小,支持以下几个值thumbnail, medium, large,full以及array(xxx,xxx)。其他参数的解释请参见wordpress官方文档的说明,这里就不介绍了。
如果你向获取视频,可以设置'post_mime_type' => 'video'.
在wordpress 3.6新增了get_attached_media函数,使得获取附件方式更加简单,它一共带了两个参数get_attached_media( $type, $post_id ),type是需要获取附件的类型,这是必须的选项;post_id 是文章ID,可选的,如果不填写,代表获取当前文章的附件。文档中的解释:
$type
(string) (required) (Mime) type of media desired.
Default: None
$post_id
(integer) (optional) Post ID, by default the current post ID.
Default: 0
(string) (required) (Mime) type of media desired.
Default: None
$post_id
(integer) (optional) Post ID, by default the current post ID.
Default: 0
函数的使用如下:
//获取当前文章的image $media = get_attached_media( 'image' ); //获取文章id为102的audio $media = get_attached_media( 'audio', 102 );本博客文章除特别声明,全部都是原创!
原创文章版权归过往记忆大数据(过往记忆)所有,未经许可不得转载。
本文链接: 【WordPress获取文章附件(多媒体)】(https://www.iteblog.com/archives/1199.html)
博主使用以上代码出错
Parse error: syntax error, unexpected ''caller_get_posts'' (T_CONSTANT_ENCAPSED_STRING), expecting ')'