5ucms论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 13524|回复: 0
打印 上一主题 下一主题

[钩子/函数] the_post_thumbnail() add_image_size() 函数 获取与设置缩略图

[复制链接]

670

主题

785

帖子

8248

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
8248
跳转到指定楼层
楼主
发表于 2021-5-30 15:39:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
the_post_thumbnail()函数用于获取文章的特色图像缩略图。

语法结构
  1. the_post_thumbnail( string|array $size = 'post-thumbnail', string|array $attr = '' )
复制代码


参数
$size(string|array) 图片大小,可以是以下几个关键字:thumbnail, medium, large, full。或者通过函数 add_image_size()函数定义尺寸的关键字。或者自定义宽和高的大小,比如:(32,32)。默认值是 ‘post-thumbnail’。

$attr(string|array)属性/值的一个数组,比如设置默认的class属性


实例

直接使用
  1. if(has_post_thumbnail()){
  2.     the_post_thumbnail();
  3. }
复制代码

自定义缩略图的大小
  1. if(has_post_thumbnail()){
  2.     the_post_thumbnail(array(200,200)); // 显示200X200尺寸的缩略图
  3. }
复制代码

这种方法的优点的灵活,可以随时通过代码的调用显示不同尺寸的图片,缺点是如果有多处代码则修改起来麻烦


用到此方法请先看下面的函数介绍
add_image_size()函数是设置 WordPress 中上传图片缩略图大小的一个函数

语法结构
  1. add_image_size( string $name, int $width, int $height, bool|array $crop = false )
复制代码

参数

$name,要设置的缩略图名称,可接受thumbnail, medium, large, full等
$width, 设定的最大宽度
$height, 设定的最大高度
$crop,是否切割,如果设置为true则按照图片剪裁自定义的高度和宽度对图片进行剪裁,100%得到预设的图片尺寸,不会压缩图片的宽高比,但是会在原图的基础上进行裁剪,同时不能控制图片剪裁的起始点。false按照图片的原始长宽比进行剪裁,不会缺失图片的内容


TIPS

使用WordPress的内置函数add_image_size()函数设置自定义图片剪裁,只会影响到今后新上传的图片,而不会对已有图片有影响。
尽可能少的去使用add_image_size(),应为每一次上传图片之后,无论是否需要,系统都会自动的按照add_image_size()函数设置进行剪裁,有可能造成大量无用图片占据网站空间;
add_image_size()函数生成的图片仅能够在主题模版中使用,在编辑文章页内容时不能被使用。
实例

比如我们想在首页和分类页面使用不同的缩略图大小,就可以先预置homepage-thumb和category-thumb这两大小。方法是在functions.php文件中加入以下代码

  1. if ( function_exists( 'add_image_size' ) ){  
  2.     add_image_size( 'category-thumb', 200, 200 ); // 预置一个名为’category-thumb’,200*200的缩略图大小  
  3.     add_image_size( 'homepage-thumb', 220, 180); //预置一个名为’homepage-thumb’,220*180的缩略图大小  
  4. }
复制代码

  1. //在首页调用
  2. the_post_thumbnail(‘homepage-thumb’); //显示220*180的缩略图
  3. //在分类页面调用
  4. the_post_thumbnail(‘category-thumb’); //显示200*180的缩略图
  5. the_post_thumbnail函数输出的html结构
复制代码


<img width="150" height="150" src="" class="attachment-thumbnail wp-post-image" alt="" title="screenshot" />
由此可以看出,我们可以用css定义类attachment-thumbnail的样式就可以了。但是如果我想分别为首页和分类页面定义不同的样式,该怎么做呢?可以给缩略图添加一个属性,如
  1. the_post_thumbnail(‘thumbnail’,array(‘class’ => ‘homepage-thumb’));
复制代码

输出的html结构为
<img width="150" height="150" src="" class="homepage-thumb wp-post-image" alt="" title="screenshot" />
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|5ucms.com

GMT+8, 2024-5-7 19:24 , Processed in 0.578125 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表