WordPress附件函数总结

不管怎样,生活还是要继续向前走去。有的时候伤害和失败不见得是一件坏事,它会让你变得更好,孤单和失落亦是如此。每件事到最后一定会变成一件好事,只要你能够走到最后。纸上得来终觉浅,绝知此事要躬行。

WordPress附件可以是图片、视频、文本文件等类型,但大部分附件函数都是针对图片的,本文总结了常用的附件函数使用方法。

wp_get_attachment_image_src()

1
<?php wp_get_attachment_image_src( $attachment_id, $size, $icon ); ?>

<?php wp_get_attachment_image_src( $attachment_id, $size, $icon ); ?>

用于图片类附件时,根据附件id和指定的尺寸($size,默认是thumbnail)获取图片的url、width、height,以数组形式返回结果,数组形式如下

1
2
3
4
5
6
7
Array
(
    [0] => 图片url
    [1] => 图片宽度width
    [2] => 图片高度 height
    [3] =>  $is_intermediate的值 //true表示返回了缩放后的图片,false表示返回了原始图片
)

Array ( [0] => 图片url [1] => 图片宽度width [2] => 图片高度 height [3] => $is_intermediate的值 //true表示返回了缩放后的图片,false表示返回了原始图片 )

关于$is_intermediate参考http://codex.wordpress.org/Function_Reference/image_downsize

关于第三个参数$icon

如果要获取的附件不是一张图片,而是,比如说视频,让$icon为真可以返回代表视频(mime type:video)的图标,否则只能返回空值。这些代表不同mime type的图片在wordpress wp-includes/images/crystal目录下,如下图所示

wp_get_attachment_image()

1
<?php wp_get_attachment_image( $attachment_id, $size, $icon, $attr ); ?>

<?php wp_get_attachment_image( $attachment_id, $size, $icon, $attr ); ?>

用于图片类附件时,根据附件ID和指定的尺寸($size,默认是thumbnail)返回完整的img标签,属性包括宽度、高度、alt等。

如果是非图片类附件,$icon为true时返回代表该附件类型的图片,具体参考上面图片的说明。

关于第四个参数$attr

这个参数可以给图片标签增加更多的属性,属性用数组来指定,例如给图片增加一个title属性

1
2
3
4
5
6
wp_get_attachment_image(
    $attachment_id,
    'thumbnail',
    false,
    array('title'=>'图片标题')
 );

wp_get_attachment_image( $attachment_id, 'thumbnail', false, array('title'=>'图片标题') );

wp_get_attachment_url()

1
<?php wp_get_attachment_url( $attachment_id ); ?>

<?php wp_get_attachment_url( $attachment_id ); ?>

获取附件的url

例如:

1
2
3
echo wp_get_attachment_url( 1 );
//返回
http://www.solagirl.net/wp-content/uploads/2012/12/image.jpg

echo wp_get_attachment_url( 1 ); //返回 http://www.solagirl.net/wp-content/uploads/2012/12/image.jpg

wp_get_attachment_link()

1
<?php wp_get_attachment_link( $id, $size, $permalink, $icon, $text ); ?>

<?php wp_get_attachment_link( $id, $size, $permalink, $icon, $text ); ?>

以超链接形式返回附件,链接包括:

如果是图片,以img标签形式返回某个尺寸的图片

如果不是图片,且$icon为true,以img标签形式返回代表该类型文件的图标

如果不是图片,且$icon为false,返回附件标题

由$text指定的文字

例如:

1
2
3
4
5
6
echo wp_get_attachment_link( 1 );
//输出
<a title="图片标题" href="http://www.solagirl.net/wp-content/uploads/2012/12/image.jpg">
    <img width="150" height="150" alt="misuzu-air" class="attachment-thumbnail"
    src="http://www.solagirl.net/wp-content/uploads/2012/12/image.jpg">
</a>

echo wp_get_attachment_link( 1 ); //输出 <a title="图片标题" rel="nofollow noopener noreferrer" href="http://www.solagirl.net/wp-content/uploads/2012/12/image.jpg"> <img width="150" height="150" alt="misuzu-air" class="attachment-thumbnail" src="http://www.solagirl.net/wp-content/uploads/2012/12/image.jpg"> </a>

如果指定了$te xt参数,则图片将被替换成文字。

the_attachment_link()

1
<?php the_attachment_link( $id, $fullsize, $deprecated, $permalink ); ?>

<?php the_attachment_link( $id, $fullsize, $deprecated, $permalink ); ?>

以超链接形式打印附件,与wp_get_attachment_link()基本类似,前者直接输出结果,后者返回结果。

第二个参数不太一样,$fullsize是布尔值,只能选择true or false,表示是使用原始图片(true)还是使用WordPress产生的缩略图(false)。

get_attachment_link()

1
<?php $attachment_page = get_attachment_link($attachment_id); ?>

<?php $attachment_page = get_attachment_link($attachment_id); ?>

以字符串形式返回专门用于显示该附件的页面的url,这个页面的模版通常是attachment.php。

与wp_get_attachment_url()的区别,后者以超链接形式返回附件的真实路径。

wp_get_attachment_metadata()

1
<?php wp_get_attachment_metadata( $attachment_id, $unfiltered ); ?>

<?php wp_get_attachment_metadata( $attachment_id, $unfiltered ); ?>

获取图片类附件的meta信息,附件与post一样存储在wp_posts表中,只是类型不同。attachment meta与post meta类似,存储了有关该附件的全部信息。attachment meta可以告诉我们:

图片的宽度、高度、原始文件路径,

图片会根据多媒体设定生成其它尺寸,这些不同尺寸的宽高等信息

包括图片本身的信息,例如copyright、iso等

wp_get_attachment_thumb_url()

1
<?php wp_get_attachment_thumb_url( $attachment_id ); ?>

<?php wp_get_attachment_thumb_url( $attachment_id ); ?>

获取附件图像的缩略图url

缩略图尺寸在多媒体中设置(缩略图大小一项),上传图片时会自动产生缩略图。

wp_get_attachment_thumb_file()

1
<?php wp_get_attachment_thumb_file( $attachment_id ); ?>

<?php wp_get_attachment_thumb_file( $attachment_id ); ?>

此函数和上面那位很像,唯一的区别是它返回的是附件缩略图的绝对路径,例如

/home/user/www/wp-content/uploads/2012/12/image-150x150.jpg

在使用这个函数时,发现无法正常返回结果,修复的方法是找到这个函数,修改成下面这样

函数位于wp-includes/post.php line 4234

1
2
3
if ( !empty($imagedata['thumb']) && ($thumbfile = str_replace(basename($file), $imagedata['thumb'], $file)) && file_exists($thumbfile) )

return apply_filters( 'wp_get_attachment_thumb_file', $thumbfile, $post->ID );

if ( !empty($imagedata['thumb']) && ($thumbfile = str_replace(basename($file), $imagedata['thumb'], $file)) && file_exists($thumbfile) ) return apply_filters( 'wp_get_attachment_thumb_file', $thumbfile, $post->ID );

替换成

1
2
3
if ( !empty($imagedata['sizes']['thumbnail']['file']) && ($thumbfile = str_replace(basename($file), $imagedata['sizes']['thumbnail']['file'], $file)) && file_exists($thumbfile) )

return apply_filters( 'wp_get_attachment_thumb_file', $thumbfile, $post->ID );

if ( !empty($imagedata['sizes']['thumbnail']['file']) && ($thumbfile = str_replace(basename($file), $imagedata['sizes']['thumbnail']['file'], $file)) && file_exists($thumbfile) ) return apply_filters( 'wp_get_attachment_thumb_file', $thumbfile, $post->ID );

参考资料:http://www.solagirl.net/wordpress-image-attachment-funcitons.html

到此这篇关于WordPress附件函数总结就介绍到这了。当你开始学会把说话变成一种成功的资本时,你一定能发现其实成功并不像人们所想的那样艰难。更多相关WordPress附件函数总结内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!

您可能有感兴趣的文章
WordPress站点Gravatar头像前后台不显示的如何解决办法

WordPress主题需要支持https吗?WordPress站点如何如何实现https?

WordPress站点的页面/标签/分类URL地址如何添加.html?

WordPress站点更换了域名后数据库应该如何操作替换新旧域名?

WordPress安装在主机空间的什么目录里面?根目录在哪里?