導讀:WordPress Media 一直支援上傳圖片生成包括縮圖, 中等尺寸, 大尺寸和原圖 4 個規格的圖片, 而這恐怕是為了方便我們在文章內呼叫不同尺寸的圖片...

WordPress Media 一直支援上傳圖片生成包括縮圖, 中等尺寸, 大尺寸和原圖 4 個規格的圖片, 而這恐怕是為了方便我們在文章內呼叫不同尺寸的圖片.

憑文章 ID 就可以找到第一個圖片, 這裡可以寫成方法如下, 使用者獲取第一個縮圖, 如果沒有上傳過圖片, 返回空字串.

以下程式碼貼入主題的 function.php 檔案:

  1. add_theme_support( 'post-thumbnails' ); 
  2. set_post_thumbnail_size( 140, 98 ,true );
  3. function dm_the_thumbnail() { 
  4.     global $post
  5.     
  6.     if ( has_post_thumbnail() ) { 
  7.         echo '<a href="'.get_permalink().'">'
  8.         the_post_thumbnail(); 
  9.         echo '</a>'
  10.     } else { 
  11.         $content = $post->post_content; 
  12.         preg_match_all('/<img.*?(?: | |
    |
    )?src=['
    "]?(.+?)['"]?(?:(?: | |
    |
    )+.*?)?>/sim', $content$strResult, PREG_PATTERN_ORDER); 
  13.         $n = count($strResult[1]); 
  14.         if($n > 0){ 
  15.             echo '<a href="'.get_permalink().'"><img src="'.$strResult[1][0].'" /></a>'
  16.         }else { 
  17.             echo '<a href="'.get_permalink().'"><img src="'.get_bloginfo('template_url').'/img/thumbnail.jpg" /></a>'
  18.         } 
  19.     } 

程式碼註釋相當詳細了, 這裡不過多說明, 新增新文章的時候, 右側有個設定縮圖, 這樣就行了.

方法二, 程式碼如下:

  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.  
  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

呼叫的程式碼如下:

  1. $thumb = getFirstImage($post->ID); 
  2. if(strlen($thumb) > 0) { 
  3.  echo $thumb
  4. else { 
  5.  

文章特徵圖片 (Featured Image) 功能

WordPress 2.9 之後,WordPress 提供了文章特徵圖片功能, 可以為文章設定一個上傳的圖片作為特徵圖片, 並可以給圖片設定多個尺寸以便在不同的環境使用, 可按一下步驟呼叫:

1. 為 WordPress 主題新增特徵圖片支援, 並設定特徵圖片的尺寸和別名, 程式碼如下:

  1. PHPadd_theme_support('post-thumbnails'); 
  2. add_image_size('thumb', 180, 180); 
  3. add_image_size('recommend', 120, 120); 
  4. add_theme_support('post-thumbnails'); 
  5. add_image_size('thumb', 180, 180); 
  6. add_image_size('recommend', 120, 120); 

我們可以將以上程式碼加到 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 的圖片.

下圖是兩個縮圖, 原圖 1024x768, 左縮圖是 add_image_size('xxx', 120, 120, true);, 而右圖使用的是 add_image_size('xxx', 120, 120, false);.