代码如下 | |
//缩略图获取 add_theme_support( 'post-thumbnails' ); set_post_thumbnail_size( 140, 98 ,true );//设置缩略图的尺寸 function dm_the_thumbnail() { global $post; // 判断该文章是否设置的缩略图,如果有则直接显示 if ( has_post_thumbnail() ) { echo '<a href="'.get_permalink().'">'; the_post_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().'"><img src="'.$strResult[1][0].'" /></a>'; }else { // 如果文章内没有图片,则用默认的图片。 echo '<a href="'.get_permalink().'"><img src="'.get_bloginfo('template_url').'/img/thumbnail.jpg" /></a>'; } } } |
代码注释相当详细了,这里不过多说明。添加新文章的时候,右侧有个设置缩略图,这样就行了
方法二
代码如下 | |
function getFirstImage($postId) { // 如果没有上传图片, 返回空字符串 // 获取缩略图中的第一个图片, 并组装成 HTML 节点返回 |
调用的代码如下。
代码如下 | |
$thumb = getFirstImage($post->ID); |
文章特征图片(Featured Image)功能
WordPress 2.9之后,WordPress 提供了文章特征图片功能,可以为文章设定一个上传的图片作为特征图片,并可以给图片设定多个尺寸以便在不同的环境使用。可按一下步骤调用:
1. 为WordPress主题添加特征图片支持,并设定特征图片的尺寸和别名。
代码如下 | |
PHPadd_theme_support('post-thumbnails'); // 支持特征图片功能 add_image_size('thumb', 180, 180); // 别名为 thumb, 尺寸为 150x150 的设定 add_image_size('recommend', 120, 120); // 别名为 recommend, 尺寸为 120x120 的设定 add_theme_support('post-thumbnails'); // 支持特征图片功能 add_image_size('thumb', 180, 180); // 别名为 thumb, 尺寸为 150x150 的设定 add_image_size('recommend', 120, 120); // 别名为 recommend, 尺寸为 120x120 的设定 |
我们可以将以上代码加到 functions.php 文件, 为主题添加添加了Featured Image 支持, 并设定了 180x180 和 120x120 两种尺寸的图片。
其中 add_image_size 用于定义一种特征图片尺寸, 参考 WordPress Codex, 实际上它有 4 个参数。
第 1 个参数: 特征图片的尺寸别名, 用于调用不同尺寸的缩略图。
第 2 个参数: 图片的宽度
第 3 个参数: 图片的高度
第 4 个参数: 参数是个布尔值, 用于指定图片的裁切方式。 默认为 false.
如果为 true, 图片会按较大的压缩比例处理, 多余部分裁剪掉。 比如现在有图片 900x600, 要求压缩成 150x150 的图片, 那么会先将图片压缩成 225x150 的图片, 才裁剪成 150x150.
如果为 false, 图片会按较小的压缩比例处理。 比如现在有图片 900x600, 要求压缩成 150x150 的图片, 那么会将图片压缩成 150x100 的图片。