WordPress附件函数总结
wp_get_attachment_image_src() 用于图片类附件时,根据附件id和指定的尺寸($si…
wp_get_attachment_image_src()
用于图片类附件时,根据附件id和指定的尺寸($size,默认是thumbnail)获取图片的url、width、height,以数组形式返回结果,数组形式如下
用法
<?php wp_get_attachment_image_src( $attachment_id, $size, $icon ); ?>
参数
$ attachment_id
(int)(必需)图像附件ID。$size
(字符串|数组)(可选)图像大小。 接受任何有效的图像大小,或以像素为单位的宽度和高度值的数组(按此顺序)。
默认值:“thumbnail”$ icon
(布尔)(可选)是否应将图像视为图标。
默认值:false
示例
返回值
1
2
3
4
5
6
7
|
Array
(
[0] => 图片url
[1] => 图片宽度width
[2] => 图片高度 height
[3] => $is_intermediate的值 //true表示返回了缩放后的图片,false表示返回了原始图片
)
|
默认用法
1
2
3
4
|
$image_attributes = wp_get_attachment_image_src( $attachment_id = 8 );
if ( $image_attributes ) : ?>
<img src=“<?php echo $image_attributes[0]; ?>“ width=“<?php echo $image_attributes[1]; ?>“ height=“<?php echo $image_attributes[2]; ?>“ />
<?php endif; ?>
|
File: wp-includes/media.php
wp_get_attachment_image()
用于图片类附件时,根据附件ID和指定的尺寸($size,默认是thumbnail)返回完整的img标签,属性包括宽度、高度、alt等。如果是非图片类附件,$icon为true时返回代表该附件类型的图片,具体参考上面图片的说明。
用法
<?php wp_get_attachment_image( $attachment_id, $size, $icon, $attr ); ?>
示例
默认调取返回
1
|
<img width=“150” height=“150” src=“http://example.com/wp-content/uploads/2017/11/image-xyz-150×150.jpg” class=“attachment-thumbnail size-thumbnail” alt=“” srcset=“http://example.com/wp-content/uploads/2017/11/image-xyz-150×150.jpg 150w, http://example.com/wp-content/uploads/2017/11/image-xyz-50×50.jpg 50w” sizes=“(max-width: 150px) 100vw, 150px” />
|
1
|
<?php echo wp_get_attachment_image( get_the_ID(), array(‘700’, ‘600’), “”, array( “class” => “img-responsive” ) ); ?>
|
要显示附加到特定页面的所有图像和标题并将它们显示为项目符号列表,可以使用以下命令:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<ul>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post();
$attachments = get_posts( array(
‘post_type’ => ‘attachment’,
‘numberposts’ => –1,
‘post_status’ => null,
‘post_parent’ => $post->ID
) );
if ( $attachments ) {
foreach ( $attachments as $attachment ) {
?>
<li><?php echo wp_get_attachment_image( $attachment->ID, ‘full’ ); ?>
<p><?php echo apply_filters( ‘the_title’, $attachment->post_title ); ?></p>
</li>
<?php
}
}
endwhile; endif; ?>
</ul>
|
File: wp-includes/media.php
get_post_thumbnail_id()
获取日志缩略图 ID。
用法
<?php $post_thumbnail_id = get_post_thumbnail_id( $post_id ); ?>
示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<?php
$args = array(
‘post_type’ => ‘attachment’,
‘numberposts’ => –1,
‘post_status’ => null,
‘post_parent’ => $post->ID,
‘exclude’ => get_post_thumbnail_id()
);
$attachments = get_posts( $args );
if ( $attachments ) {
foreach ( $attachments as $attachment ) {
echo apply_filters( ‘the_title’, $attachment->post_title );
the_attachment_link( $attachment->ID, false );
}
}
?>
|
wp-includes/post-thumbnail-template.php
wp_get_attachment_url()
获取附件的url
用法
<?php wp_get_attachment_url( $attachment_id ); ?>
1
2
3
|
echo wp_get_attachment_url( 1 );
//返回
http://www.solagirl.net/wp-content/uploads/2012/12/image.jpg
|
示例
基础用法
1
|
<?php echo wp_get_attachment_url( 12 ); ?>
|
使用帖子缩略图作为背景图像
1
2
3
4
5
6
7
|
if ( have_posts() ) : while ( have_posts() ) : the_post();
if ( has_post_thumbnail() ) {
$feat_image_url = wp_get_attachment_url( get_post_thumbnail_id() );
echo ‘<div style=”background-image:url(‘.$feat_image_url.‘);”></div>’;
}
endwhile;
endif;
|
File: wp-includes/post.php
wp_get_attachment_link()
以超链接形式返回附件,链接包括:
如果是图片,以img标签形式返回某个尺寸的图片
如果不是图片,且$icon为true,以img标签形式返回代表该类型文件的图标
如果不是图片,且$icon为false,返回附件标题
由$text指定的文字
用法
<?php wp_get_attachment_link( $id, $size, $permalink, $icon, $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>
|
如果指定了$te xt参数,则图片将被替换成文字。
示例
1
2
3
4
|
<?php
$id = 9; // ID of an attachment
echo wp_get_attachment_link( $id, ‘thumbnail’, true );
?>
|
File: wp-includes/post-template.php
the_attachment_link()
以超链接形式打印附件,与wp_get_attachment_link()基本类似,前者直接输出结果,后者返回结果。
第二个参数不太一样,$fullsize是布尔值,只能选择true or false,表示是使用原始图片(true)还是使用WordPress产生的缩略图(false)。
用法
<?php the_attachment_link( $id, $fullsize, $deprecated, $permalink ); ?>
get_attachment_link()
以字符串形式返回专门用于显示该附件的页面的url,这个页面的模版通常是attachment.php。
与wp_get_attachment_url()的区别,后者以超链接形式返回附件的真实路径。
用法
<?php $attachment_page = get_attachment_link($attachment_id); ?>
wp_get_attachment_metadata()
获取图片类附件的meta信息,附件与post一样存储在wp_posts表中,只是类型不同。attachment meta与post meta类似,存储了有关该附件的全部信息。attachment meta可以告诉我们:
图片的宽度、高度、原始文件路径,
图片会根据多媒体设定生成其它尺寸,这些不同尺寸的宽高等信息
包括图片本身的信息,例如copyright、iso等
用法
<?php wp_get_attachment_metadata( $attachment_id, $unfiltered ); ?>
wp_get_attachment_thumb_url()
获取附件图像的缩略图url
缩略图尺寸在多媒体中设置(缩略图大小一项),上传图片时会自动产生缩略图。
用法
<?php wp_get_attachment_thumb_url( $attachment_id ); ?>
wp_get_attachment_thumb_file()
用法
<?php wp_get_attachment_thumb_file( $attachment_id ); ?>
此函数和上面那位很像,唯一的区别是它返回的是附件缩略图的绝对路径,例如
/home/user/www/wp-content/uploads/2012/12/image-150×150.jpg
在使用这个函数时,发现无法正常返回结果,修复的方法是找到这个函数,修改成下面这样
函数位于wp-includes/post.php line 4234
将
1
2
|
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
|
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 );
|
本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。
还没有任何评论,赶紧来占个楼吧!