加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 运营中心 > 网站设计 > 教程 > 正文

在wordpress中缩略图调取几种方法

发布时间:2022-06-25 13:12:01 所属栏目:教程 来源:互联网
导读:WordPress Media一直支持上传图片生成包括缩略图,中等尺寸,大尺寸和原图4个规格的图片,而这恐怕是为了方便我们在文章内调用不同尺寸的图片. 凭文章ID就可以找到第一个图片,这里可以写成方法如下,用户获取第一个缩略图,如果没有上传过图片,返回空字符串. 方
  WordPress Media一直支持上传图片生成包括缩略图,中等尺寸,大尺寸和原图4个规格的图片,而这恐怕是为了方便我们在文章内调用不同尺寸的图片.
 
  凭文章ID就可以找到第一个图片,这里可以写成方法如下,用户获取第一个缩略图,如果没有上传过图片,返回空字符串.
 
       方法一,代码如下:
 
  function getFirstImage($postId) {
   $args = array(
    'numberposts' => 1,
    'order'=> 'ASC',
    'post_mime_type' => 'image',
    'post_parent' => $postId,
    'post_status' => null,
    'post_type' => 'attachment'
   );
   $attachments = get_children($args);
   // 如果没有上传图片, 返回空字符串
   if(!$attachments) {
    return '';
   }
   // 获取缩略图中的第一个图片, 并组装成 HTML 节点返回
   $image = array_pop($attachments);
   $imageSrc = wp_get_attachment_image_src($image->ID, 'thumbnail');
   $imageUrl = $imageSrc[0];
   $html = '<img src="' . $imageUrl . '" alt="' . the_title('', '', false) . '" />';
   return $html;
  }
  调用的代码如下:
 
  $thumb = getFirstImage($post->ID);
  if(strlen($thumb) > 0) {
   echo $thumb;
  } else {
   // 显示默认图片或者不做任何事情
  }
  文章特征图片(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 的图片.

  以下代码贴入主题的function.php文件:
 
  //缩略图获取
  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>'; //开源软件:phpfensi.com
          }else { // 如果文章内没有图片,则用默认的图片。
              echo '<a href="'.get_permalink().'"><img src="'.get_bloginfo('template_url').'/img/thumbnail.jpg" /></a>';
          }
      }
  }
  代码注释相当详细了,这里不过多说明,添加新文章的时候,右侧有个设置缩略图,这样就行了.
 
  两个缩略图,原图 1024x768,左缩略图是 add_image_size('xxx', 120, 120, true);,而右图使用的是 add_image_size('xxx', 120, 120, false);。
 

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读