導讀:WordPress Media 一直支持上傳圖片生成包括縮略圖, 中等尺寸, 大尺寸和原圖 4 個規格的圖片, 而這恐怕是為了方便我們在文章內調用不同尺寸的圖片...
WordPress Media 一直支持上傳圖片生成包括縮略圖, 中等尺寸, 大尺寸和原圖 4 個規格的圖片, 而這恐怕是為了方便我們在文章內調用不同尺寸的圖片.
憑文章 ID 就可以找到第一個圖片, 這裏可以寫成方法如下, 用户獲取第一個縮略圖, 如果沒有上傳過圖片, 返回空字符串.
以下代碼貼入主題的 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.*?(?: | |
|
)?src=['"]?(.+?)['"]?(?:(?: | |
|
)+.*?)?>/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) {
- $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 '';
- }
- $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);
- add_image_size('recommend', 120, 120);
- add_theme_support('post-thumbnails');
- add_image_size('thumb', 180, 180);
- 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);.