wordpress中缩略图调取几种方法

《wordpress中缩略图调取几种方法》要点:
本文介绍了wordpress中缩略图调取几种方法,希望对您有用。如果有疑问,可以联系我们。

导读:WordPress Media一直支持上传图片生成包括缩略图,中等尺寸,大尺寸和原图4个规格的图片,而这恐怕是为了方便我们在文章内调用不同尺寸的图片...
WordPress Media一直支持上传图片生成包括缩略图,而这恐怕是为了方便我们在文章内调用不同尺寸的图片.

凭文章ID就可以找到第一个图片,这里可以写成方法如下,用户获取第一个缩略图,如果没有上传过图片,返回空字符串.DEDECMS案例

以下代码贴入主题的function.php文件:DEDECMS案例

  1. //缩略图获取
  2. add_theme_support( 'post-thumbnails' ); 
  3. set_post_thumbnail_size( 140, 98 ,true );//设置缩略图的尺寸
  4. function dm_the_thumbnail() { 
  5.     global $post
  6.     // 判断该文章是否设置的缩略图,如果有则直接显示
  7.     if ( has_post_thumbnail() ) { 
  8.         echo '<a href="'.get_permalink().'">'
  9.         the_post_thumbnail(); 
  10.         echo '</a>'
  11.     } else { //如果文章没有设置缩略图,则查找文章内是否包含图片
  12.         $content = $post->post_content; 
  13.         preg_match_all('/<img.*?(?: |\t|\r|\n)?src=['"]?(.+?)['"]?(?:(?: |\t|\r|\n)+.*?)?>/sim', $content$strResult, PREG_PATTERN_ORDER); 
  14.         $n = count($strResult[1]); 
  15.         if($n > 0){ // 如果文章内包含有图片,就用第一张图片做为缩略图
  16.             echo '<a href="'.get_permalink().'"><img src="'.$strResult[1][0].'" /></a>'
  17.         }else { // 如果文章内没有图片,则用默认的图片.
  18.             echo '<a href="'.get_permalink().'"><img src="'.get_bloginfo('template_url').'/img/thumbnail.jpg" /></a>'
  19.         } 
  20.     } 

代码注释相当详细了,这里不过多说明,添加新文章的时候,右侧有个设置缩略图,这样就行了.DEDECMS案例

方法二,代码如下:DEDECMS案例

  1. function getFirstImage($postId) { 
  2.  $args = array
  3.   'numberposts' => 1, 
  4.   'order'=> 'ASC'
  5.   'post_mime_type' => 'image'
  6.   'post_parent' => $postId
  7.   'post_status' => null, 
  8.   'post_type' => 'attachment'
  9.  ); 
  10.  $attachments = get_children($args); 
  11.  // 如果没有上传图片, 返回空字符串
  12.  if(!$attachments) { 
  13.   return ''
  14.  } 
  15.  // 获取缩略图中的第一个图片, 并组装成 HTML 节点返回
  16.  $image = array_pop($attachments); 
  17.  $imageSrc = wp_get_attachment_image_src($image->ID, 'thumbnail'); 
  18.  $imageUrl = $imageSrc[0]; 
  19.  $html = '<img src="' . $imageUrl . '" alt="' . the_title('''', false) . '" />'
  20.  return $html

调用的代码如下:DEDECMS案例

  1. $thumb = getFirstImage($post->ID); 
  2. if(strlen($thumb) > 0) { 
  3.  echo $thumb
  4. else { 
  5.  // 显示默认图片或者不做任何事情

文章特征图片(Featured Image)功能DEDECMS案例

WordPress 2.9之后,WordPress 提供了文章特征图片功能,可以为文章设定一个上传的图片作为特征图片,并可以给图片设定多个尺寸以便在不同的环境使用,可按一下步骤调用:DEDECMS案例

1.为WordPress主题添加特征图片支持,并设定特征图片的尺寸和别名,代码如下:DEDECMS案例

  1. PHPadd_theme_support('post-thumbnails'); // 支持特征图片功能
  2. add_image_size('thumb', 180, 180); // 别名为 thumb, 尺寸为 150x150 的设定
  3. add_image_size('recommend', 120, 120); // 别名为 recommend, 尺寸为 120x120 的设定
  4. add_theme_support('post-thumbnails'); // 支持特征图片功能
  5. add_image_size('thumb', 尺寸为 150x150 的设定
  6. add_image_size('recommend', 尺寸为 120x120 的设定

我们可以将以上代码加到 functions.php 文件,为主题添加添加了Featured Image 支持,并设定了 180x180 和 120x120 两种尺寸的图片.DEDECMS案例

其中 add_image_size 用于定义一种特征图片尺寸,参考 WordPress Codex,实际上它有 4 个参数.DEDECMS案例

第 1 个参数:特征图片的尺寸别名,用于调用不同尺寸的缩略图.DEDECMS案例

第 2 个参数:图片的宽度DEDECMS案例

第 3 个参数:图片的高度DEDECMS案例

第 4 个参数:参数是个布尔值,用于指定图片的裁切方式,默认为 false.DEDECMS案例

如果为 true,图片会按较大的压缩比例处理,多余部分裁剪掉,比如现在有图片 900x600,要求压缩成 150x150 的图片,那么会先将图片压缩成 225x150 的图片,才裁剪成 150x150.DEDECMS案例

如果为 false,图片会按较小的压缩比例处理,那么会将图片压缩成 150x100 的图片.DEDECMS案例

下图是两个缩略图,原图 1024x768,左缩略图是 add_image_size('xxx',120,true);,而右图使用的是 add_image_size('xxx',false);.

欢迎参与《wordpress中缩略图调取几种方法》讨论,分享您的想法,编程之家 jb51.cc为您提供专业教程。

相关文章

1、想好字段名! 这里取一个test 商品发布模板:post_trad...
一、后台 → 全局 → 关闭站点(为了不影响数据库备...
<?php /** [Discuz!] (C) 2001-2099 Comsenz Inc. con...
今天给大家讲讲 如何把已经切割好的html页面或者模仿的页面转...
打开网站根目录下/template/default/common header_common....
打开网站根目录/source/module/portal/portal_list.php搜 c...