您现在的位置是:首页 > cms教程 > WordPress教程WordPress教程
wordpress缩略图函数the_post_thumbnail
古驰2025-03-20WordPress教程已有人查阅
导读很多WordPress主题,特别是那些杂志型的主题,会给每篇日志加上一张缩略图,这种展现方式一般用在首页,可能单独出现,或者和日志摘要一起。
很多WordPress主题,特别是那些杂志型的主题,会给每篇日志加上一张缩略图,这种展现方式一般用在首页,可能单独出现,或者和日志摘要一起。但是目前位置没有一个标准的方法去实现日志缩略图,很多主题是使用WordPress自定义字段来实现日志缩略图功能,这样的设置比较复杂,虽然我在制作的很多WordPress项目中都是用这个方法,并且设置了直接上传缩略图的方法,但是还是略显麻烦。
从 WordPress 2.9 开始,WordPress 开始内置了日志缩略图的功能,并且提供了详细的接口让主题的作者设置和调用日志的缩略图。
第一步:让主题支持缩略图功能
首先确保你的wordpress版本在2.9之上,然后在你的当前主题文件夹中找到并编辑functions.php文件,加入下面这句代码
这样当你在后台编辑文章的时候,右边的分类目录下面就会多出一个“文章缩略图”模块。
点击“设置缩略图”就可以该文章添加缩略图了。
记得在添加图片的时候要点击下面的“用作缩略图”。
第二步:使用缩略图
在需要显示缩略图的地方调用the_post_thumbnail函数,比如你想在首页为每篇文章显示缩略图,可以在index.php文件中加入下面这样的代码
Thumbnail (缩略图尺寸)
Medium (中等尺寸)
Large (大尺寸)
Full (原始尺寸)
具体尺寸大小可以在后台“设置”中的“媒体”选项中进行设置
你可以设置3种不同的大小,以方便在不同的情况下使用。
至此你的主题已经支持缩略图功能并可以灵活使用了。
下面我将介绍一下更高级的应用技巧。自定义缩略图尺寸的三种方法方法一:后台设置
就是上面提到的方法,不过这种方法只设置3种大小。方法二:自定义
在调用the_post_thumbnail函数的时候,可以直接指定缩略图的大小
the_post_thumbnail(array(200,200)); // 显示200X200尺寸的缩略图
这种方法的优点的灵活,可以随时通过代码的调用显示不同尺寸的图片,缺点是修改有点麻烦,如果你有多处这样的代码,修改起来就要把每一处代码都要修改掉。方法三:增加预置尺寸
通过前面的介绍我们已经知道,wordpress为我们预置了三种可以设置的尺寸。可不可以再增加一些预置的尺寸呢?当然可以,我们要用到的函数是add_image_size。比如我们想在首页和分类页面使用不同的缩略图大小,就可以先预置homepage-thumb和category-thumb这两大小。方法是在functions.php文件中加入以下代码
在分类页面调用
首先我们先来看一下the_post_thumbnail函数输出的html是什么样的
但是如果我想分别为首页和分类页面定义不同的样式,该怎么做呢?
方法一是增加一个div,针对不同的div定义不同的样式,在此不多做介绍。
我要介绍的是另一种方法:给缩略图添加属性
你可以测试一下,如果把the_post_thumbnail(“thumbnail”)修改为下面这样的代码,看看输出的html结果是什么?
我们可以使用filter来改变缩略图的html输出结果,下面的这段代码为缩略图加了一个文章链接
一个良好的习惯就是在调用the_post_thumbnail函数之前,先检测一下该文章有没有设置缩略图,检测的方法是调用has_post_thumbnail函数,代码如下
从 WordPress 2.9 开始,WordPress 开始内置了日志缩略图的功能,并且提供了详细的接口让主题的作者设置和调用日志的缩略图。
第一步:让主题支持缩略图功能
首先确保你的wordpress版本在2.9之上,然后在你的当前主题文件夹中找到并编辑functions.php文件,加入下面这句代码
<?php
if ( function_exists( 'add_theme_support' ) )
add_theme_support( 'post-thumbnails' );
?>
(注:主题文件夹都保存在wp-content/themes/目录下)这样当你在后台编辑文章的时候,右边的分类目录下面就会多出一个“文章缩略图”模块。
点击“设置缩略图”就可以该文章添加缩略图了。
记得在添加图片的时候要点击下面的“用作缩略图”。
第二步:使用缩略图
在需要显示缩略图的地方调用the_post_thumbnail函数,比如你想在首页为每篇文章显示缩略图,可以在index.php文件中加入下面这样的代码
<?
php if ( function_exists( 'the_post_thumbnail' ) )
the_post_thumbnail( 'thumbnail' );
?>
这样就能显示缩略图了,其中参数”thumbnail”表示缩略图显示的大小。wordpress预置了4种大小,你可以使用下面的4个参数来替换’thumbnail’,当然不同的台数显示的图片大小也不同Thumbnail (缩略图尺寸)
Medium (中等尺寸)
Large (大尺寸)
Full (原始尺寸)
具体尺寸大小可以在后台“设置”中的“媒体”选项中进行设置
你可以设置3种不同的大小,以方便在不同的情况下使用。
至此你的主题已经支持缩略图功能并可以灵活使用了。
下面我将介绍一下更高级的应用技巧。自定义缩略图尺寸的三种方法方法一:后台设置
就是上面提到的方法,不过这种方法只设置3种大小。方法二:自定义
在调用the_post_thumbnail函数的时候,可以直接指定缩略图的大小
the_post_thumbnail(array(200,200)); // 显示200X200尺寸的缩略图
这种方法的优点的灵活,可以随时通过代码的调用显示不同尺寸的图片,缺点是修改有点麻烦,如果你有多处这样的代码,修改起来就要把每一处代码都要修改掉。方法三:增加预置尺寸
通过前面的介绍我们已经知道,wordpress为我们预置了三种可以设置的尺寸。可不可以再增加一些预置的尺寸呢?当然可以,我们要用到的函数是add_image_size。比如我们想在首页和分类页面使用不同的缩略图大小,就可以先预置homepage-thumb和category-thumb这两大小。方法是在functions.php文件中加入以下代码
if ( function_exists( 'add_image_size' ) ){
add_image_size( 'category-thumb', 200, 200 ); // 预置一个名为’category-thumb’,200*200的缩略图大小
add_image_size( 'homepage-thumb', 220, 180); //预置一个名为’homepage-thumb’,220*180的缩略图大小
}
之后就可以在首页调用
the_post_thumbnail(‘homepage-thumb’);
显示220*180的缩略图在分类页面调用
the_post_thumbnail(‘category-thumb’);
则显示200*200的缩略图。定义缩略图的样式首先我们先来看一下the_post_thumbnail函数输出的html是什么样的
<img width="150" height="150" src="http://domety.com/wp-content/uploads/2010/10/screenshot-150x150.png"
class="attachment-thumbnail wp-post-image" alt="" title="screenshot" />
由此可以看出,我们可以用css定义类attachment-thumbnail的样式就可以了。但是如果我想分别为首页和分类页面定义不同的样式,该怎么做呢?
方法一是增加一个div,针对不同的div定义不同的样式,在此不多做介绍。
我要介绍的是另一种方法:给缩略图添加属性
你可以测试一下,如果把the_post_thumbnail(“thumbnail”)修改为下面这样的代码,看看输出的html结果是什么?
the_post_thumbnail(‘thumbnail’,array(‘class’ => ‘homepage-thumb’));
我这边输出的html为
<img width="150" height="150" src="http://domety.com/wp-content/uploads/2010/10/screenshot-150x150.png"
class="homepage-thumb wp-post-image" alt="" title="screenshot" />
可以和之前的html对比一下,不难发现class属性变成了我们设置的’homepage-thumb’。可以通过这种方法,把首页缩略图和分类页面的缩略图设置为不同的class属性。改变the_post_thumbnail的html输出我们可以使用filter来改变缩略图的html输出结果,下面的这段代码为缩略图加了一个文章链接
add_filter( 'post_thumbnail_html', 'my_post_image_html', 10, 3 );
function my_post_image_html( $html, $post_id, $post_image_id ) {
$html = '<a href="' . get_permalink( $post_id ) . '" title="' . esc_attr( get_post_field( 'post_title', $post_id ) ) . '">' . $html . '</a>';
return $html;
}
当你点击缩略图的时候就会跳转到相应的文章内页。检测文章是否有缩略图一个良好的习惯就是在调用the_post_thumbnail函数之前,先检测一下该文章有没有设置缩略图,检测的方法是调用has_post_thumbnail函数,代码如下
<?php if ( has_post_thumbnail() )
the_post_thumbnail( 'thumbnail' );?>
结合本站之前的提取文章内图片做为缩略图的方法,现在可以合二为一:首先判断文章有没有设置缩略图,如果有就直接显示,如果没有再提取文章内的图片为缩略图。
/*
* 缩略图
*/
function dm_the_thumbnail() {
global $post;
// 判断该文章是否设置的缩略图,如果有则直接显示
if ( has_post_thumbnail() ) {
echo '<a href="'.get_permalink().'" title="阅读全文">';
the_post_thumbnail('thumbnail');
echo '</a>';
} else { //如果文章没有设置缩略图,则查找文章内是否包含图片
$content = $post->post_content;
preg_match_all('/<img.*?(?: |\\t|\\r|\\n)?src=[\'"]?(.+?)[\'"]?(?:(?: |\\t|\\r|\\n)+.*?)?>/sim', $content, $strResult, PREG_PATTERN_ORDER);
$n = count($strResult[1]);
if($n > 0){ // 如果文章内包含有图片,就用第一张图片做为缩略图
echo '<a href="'.get_permalink().'" title="阅读全文"><img src="'.$strResult[1][0].'" alt="缩略图" /></a>';
}else { // 如果文章内没有图片,则用默认的图片。
echo '<a href="'.get_permalink().'" title="阅读全文"><img src="'.get_bloginfo('template_url').'/imgs/default_thumbnail.jpg" alt="缩略图" /></a>';
}
}
}
有兴趣的朋友可以把以上代码复制到functions.php文件中,然后调用dm_the_thumbnail()即可。
本文标签:
很赞哦! ()
相关教程
图文教程
WordPress插件开发实例教程
说明:本教程仅限学习,高手请绕道开发程序:WordPress 3.9-RC1使用主题:Twenty Fourteen在开始之前,需要注意三件事情I、给插件取一个个性化的名字,越个性化越好,以防和其他插件
优化WordPress后台和前端打开的响应速度
装好WordPress之后,准备想访问自己的网站,或是登入后台的时候,却发现,这个速度不敢恭维,即使是本地话的程序,也是慢慢的。操作起来也要挺久。
wordpress搬家迁移数据的方法
WordPress是一种使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。
lnmp环境下搭建wordpress的方法
今天和大家说下lnmp环境下如何搭建wordpress。1.前去lnmp的官网下载并安装lnmp到linux服务器下,官网网址:https://lnmp.org/,跟着官网的步骤走,lnmp的环境是不会有问题的一般。
相关源码
-
(自适应)居家生活日用品纸盘纸盒纸杯卫生纸巾生产厂家pbootcms模板为纸品生产企业打造的现代化展示平台,自动适应各种设备屏幕,确保浏览体验一致,完善的SEO功能,提升网站曝光度,基于PbootCMS构建,源码开放可定制。查看源码 -
(自适应)HTML5响应式双语绿色物流运输快递货运pbootcms源码本款基于PbootCMS开发的网站模板为物流运输、快递货运行业设计,采用HTML5技术构建,支持简繁字体切换。模板设计充分考虑了货运物流行业的特点,可专业展示运输服务、物流网络和业务优势等内容。查看源码 -
(自适应)家政保洁保姆打扫卫生清灰服务pbootcms模板免费下载采用手工编写的DIV+CSS架构,代码结构清晰无冗余,加载速度优异。响应式设计适配各类终端设备,保障手机、平板、电脑端的一致浏览体验。查看源码 -
帝国cms7.5大型游戏资讯门户网站源码免费下载本模板基于帝国CMS7.5内核开发,为大型游戏资讯门户网站设计。模板自带响应式手机版,适配多种终端设备。内容架构针对游戏行业特点优化,支持游戏资讯、评测、攻略等内容类型的发布与管理。查看源码 -
(自适应)APP应用软件落地页单页推广页网站模板下载基于PbootCMS内核开发的响应式单页模板,为企业产品展示、服务推广等应用场景设计。通过简洁直观的视觉布局与高效的技术架构,帮助用户快速构建专业级落地页面,实现移动端与PC端数据实时同步展示。查看源码 -
Wordpress博客新闻主题在线商店平台betheme 21.5.6版BeTheme是一款功能丰富的WordPress主题模板,专注于为各行业提供网站建设解决方案。该模板支持WooCommerce电子商务功能,能够快速搭建在线商店平台,同时适用于博客、新闻资讯类网站建设。自2014年发布以来,该模板已经获得大量用户的使用验证。查看源码
| 分享笔记 (共有 篇笔记) |

