WordPress 日志缩略图功能

标签: WordPress 技巧 WordPress | 发表时间:2010-06-28 00:06 | 作者:Denis Outman
出处:http://fairyfish.net

很多 WordPress 主题,特别是那些杂志型的主题,会给每篇日志加上一张缩略图,这种展现方式一般用在首页,可能单独出现,或者和日志摘要一起。但是目前位置没有一个标准的方法去实现日志缩略图,很多主题是使用 WordPress 自定义字段来实现日志缩略图功能,这样的设置比较复杂,虽然我在制作的很多 WordPress 项目中都是用这个方法,并且设置了直接上传缩略图的方法,但是还是略显麻烦。

从 WordPress 2.9 开始,WordPress 开始内置了日志缩略图的功能,并且提供了详细的接口让主题的作者设置和调用日志的缩略图。

WordPress 日志缩略图功能
WordPress 日志缩略图功能

开启 WordPress 日志缩略图功能

在当前 WordPress 主题的 functions.php 添加以下函数,这个函数会在 WordPress 后台编辑日志的界面开启设置日志缩略图的窗体。

add_theme_support( 'post-thumbnails' );

上面的代码会同时给日志和页面开启缩略图功能,如果你想单独开启该功能,使用以下代码:

add_theme_support( 'post-thumbnails', array( 'post' ) ); // 给日志启用日志缩略图
add_theme_support( 'post-thumbnails', array( 'page' ) ); // 给页面启用日志缩略图

设置日志缩略图大小

开启了 WordPress 日志缩略图功能之后,我们应该缩略图的大小,这里有两种方式:box-resize(盒大小模式)和 hard-crop(裁剪模式)。

盒大小模式按照比例缩小图片直到适合指定的盒子,所以不会扭曲图片。盒大小模式可以指定长度和宽度,比如一张 100X50 的图片在指定的 50X50 的盒子中会被缩小为 50X25。这种模式的好处是可以显示整张图片,缺点是生成的图片并不是一样大的,有时候是长度一样,有时候是高度一样,如果你想限制缩略图到一定的宽度,而不在乎它的高度,你可以指定你的宽度,然后设置它的高度为 9999 或者任何你认为够大的一个数字。设置盒模式的代码如下:

set_post_thumbnail_size( 50, 50 ); // 50 像素宽和 50 像素高,盒大小模式(box resize mode)。

第二种是硬裁剪模式(hard-crop),这种模式下,图片会被裁剪为指定的大小,这种方式的好处就是得到我们所希望的,比如你希望的到一张 50X50 的缩略图,我们就会得到 50X50 的缩略图,缺点就是你的图片会被裁减,并且在缩略图中只会显示图片的一部分。这种方式的代码是:

set_post_thumbnail_size( 50, 50, true ); // 50 像素宽和 50 像素高,裁剪模式(hard crop mode)

在主题中显示日志缩略图

现在我们要在主题中使用模板函数来显示日志缩略图,这些函数应该在 WordPress 的主循环中使用。

has_post_thumbnail() 这个模板函数判断当前日志是否有缩略图,如果有返回 true,否则为 false:

<?php
if ( has_post_thumbnail() ) {
	//当前日志有缩略图
} else {
	//当前日志没有设置缩略图
}
?>

the_post_thumbnail() 这个模板函数输出日志缩略图,如果缩略图存在的话。

<?php the_post_thumbnail(); ?>

WordPress 日志缩略图具体使用案例

假设你想在首页使用一个比较小的 50X50 裁剪模式的缩略图,并且想在日志页面使用 400 像素宽(高度不限制)的图片,那么怎么办?你可以置顶额外的自定义尺寸,代码如下:

functions.php 中添加如下代码:

add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 50, 50, true ); // 普通的缩略图
add_image_size( 'single-post-thumbnail', 400, 9999 ); // 永久连接缩略图大小

index.php 或者 home.php(取决你的主题的结构)中的主循环添加如下代码:

<?php the_post_thumbnail(); ?>

在主题的 single.php (也是主循环中)添加如下代码:

<?php the_post_thumbnail( 'single-post-thumbnail' ); ?>

这样就行了,set_post_thumbnail_size() 调用 add_image_size( 'post-thumbnail' ) — 默认的日志缩略图“handle”(处理函数)。但是我们可以通过调用 add_image_size( $handle, $width, $height, {$hard_crop_switch} ); 来增加额外的日志缩略图处理函数,然后通过传递 handle 给 the_post_thumbnail( $handle ); 来使用新的缩略图尺寸。

其他 WordPress 日志缩略图相关的函数

获取日志缩略图 ID

有时候你想自定义脚本,这个时候你可能获取缩略图的 ID,日志缩略图的 ID 是存在 meta key 为 _thumbnail_id 的值中,但是我们只需要使用下面简单的函数就可以获取日志的缩略图 ID:

$image_id = get_post_thumbnail_id();

获取日志缩略图而不是输出它

有时候,你可能在 PHP 代码中返回日志缩略图,而不是输出它,可以使用下面简单的代码:

$image = get_the_post_thumbnail( $post->ID, 'thumbnail' );

>>>继续阅读全文 ...


© 我爱水煮鱼 / 收藏本文 / 10条评论 / RSS 订阅 / 长期承接 WordPress 项目 / Hosting by (mt) Media Temple

相关日志

相关 [wordpress 日志 功能] 推荐:

WordPress 日志缩略图功能

- Outman - 我爱水煮鱼
很多 WordPress 主题,特别是那些杂志型的主题,会给每篇日志加上一张缩略图,这种展现方式一般用在首页,可能单独出现,或者和日志摘要一起. 但是目前位置没有一个标准的方法去实现日志缩略图,很多主题是使用 WordPress 自定义字段来实现日志缩略图功能,这样的设置比较复杂,虽然我在制作的很多 WordPress 项目中都是用这个方法,并且设置了直接上传缩略图的方法,但是还是略显麻烦.

WordPress 相关日志插件:WordPress Related Posts

- - 我爱水煮鱼
我们知道 WordPress 使用的 MySQL 数据库默认是不支持中文分词,所以在中文情况下产生相关日志的最好方法就是通过 Tag,而. WordPress 2.3 版本开始 WordPress 内置了 Tag 的支持. 所以根据日志含有相同的 Tag 数越多,就认为日志相关性越强,所以我根据这一原理开发了 WordPress Related Posts 这个插件,最新版已经由 Zemanta 接手继续开发了.

建站首选,功能强大的WordPress企业主题

- - 设计达人
关于买模板来做网站,听起来有点贬义,觉得模板就是模板,千篇一律,其实这是因为你找不到好的而已,不信. 你看看今天设计达人网为你整理的功能强大的 WordPress主题,这些主题采用了流行的网页布局以及前端技术制作而成,不怕过时而且质量靠谱. 响应式设计,兼容桌面电脑、平板和手机设备. 多个配色方案,用户可以自定义自己的配色,风格不再单一.

WordPress SEO 宝典

- luckerme - 我爱水煮鱼
最基本的搜索引擎优化(SEO)是很简单的,而 WordPress 程序本身的一些优势使得 SEO 变得更加容易,比如我爱水煮鱼有超过 70% 的流量来自搜索引擎,所以做好 SEO 就是流量的保证,这篇文章就给大家介绍下在 WordPress 博客中最基本的一些 SEO 要求,希望能够帮助到你. 简单来说 SEO 分为页面优化和链接建设两大部分,页面优化是基础,而链接建设则是重点,两者缺一不可.

WordPress 技巧

- - CSDN博客互联网推荐文章
WordPress字体设置方法详解.          WordPress开源程序功能越来越强大,未来我们不仅仅可以使用wordpress制作个人博客,还可以使用wordpress程序制作CMS内容管理系统. 很多 Wordpress主题SEO优化的非常好,而且还附带了一些adsense广告位置,让不懂SEO以及代码修改的朋友轻松解决博客优化以及广告位放置问题.

WordPress SEO 宝典

- - 人人都是产品经理
最基本的搜索引擎优化(SEO)是很简单的,而 WordPress 程序本身的一些优势使得 SEO 变得更加容易,比如我爱水煮鱼有超过 70% 的流量来自搜索引擎,所以做好 SEO 就是流量的保证,这篇文章就给大家介绍下在 WordPress 博客中最基本的一些 SEO 要求,希望能够帮助到你. 简单来说 SEO 分为页面优化和链接建设两大部分,页面优化是基础,而链接建设则是重点,两者缺一不可.

WordPress如何赚钱?

- 幻幽 or A書 - 36氪
WordPress是一个免费的开源博客平台,那么它是如何赚钱的呢. 创始人Matt给出了以下7点盈利来源:. 比如说为Om Malik,Allthings D这样的大公司博客提供博客托管,他们就会收取每月500美元. 有时候你可能会在WordPress平台上的免费博客内看到Google广告,不过这取决于以下3个条件都存在——访客使用的不是火狐浏览器,他已经登出WordPress账户(如果他有的话),链接源不能是WordPress平台博客(比如一个从abc.wordpress.com到xyz.wordpress.com的人不会看到任何Google广告).

WordPress 3.2 正式发布

- 小老虎 - cnBeta.COM
WordPress在美国独立日发布了3.2正式版,这是3.1版本发布一个月,下载量突破1500万后的又一个主要版本,新版带来了更快的速度和更轻量级的代码,并带来了HTML5构建的Twenty Eleven主题,在写文章的同时还可以以全屏方式进行.

FancyBox 和其 WordPress 插件

- Outman - 我爱水煮鱼
FancyBox 是一个 jQuery 图片播放插件,它可以使用类似于 MAC 系统中 “Lightbox” 方式在网页前面浮动显示和播放图片,网页内容,或者其他多媒体内容. 支持图片,HTML 元素,Flash 动画,Iframe 以及 AJAX 支持. 可以自定义播放器和 CSS 样式. 如果加载了鼠标滚动插件(mouse wheel plugin),FancyBox 还支持通过鼠标滚动事件来翻阅图片.