欢迎关注大数据技术架构与案例微信公众号:过往记忆大数据
过往记忆博客公众号iteblog_hadoop
欢迎关注微信公众号:
过往记忆大数据

WordPress获取文章附件(多媒体)

  在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

函数的使用如下:

//获取当前文章的image
$media = get_attached_media( 'image' );
//获取文章id为102的audio
$media = get_attached_media( 'audio', 102 );

本博客文章除特别声明,全部都是原创!
原创文章版权归过往记忆大数据(过往记忆)所有,未经许可不得转载。
本文链接: 【WordPress获取文章附件(多媒体)】(https://www.iteblog.com/archives/1199.html)
喜欢 (6)
分享 (0)
发表我的评论
取消评论

表情
本博客评论系统带有自动识别垃圾评论功能,请写一些有意义的评论,谢谢!
(1)个小伙伴在吐槽
  1. 博主使用以上代码出错
    Parse error: syntax error, unexpected ''caller_get_posts'' (T_CONSTANT_ENCAPSED_STRING), expecting ')'

    湘A伢子2016-05-28 09:10 回复