代碼如下 | |
//縮略圖獲取 add_theme_support( 'post-thumbnails' ); set_post_thumbnail_size( 140, 98 ,true );//設(shè)置縮略圖的尺寸 function dm_the_thumbnail() { global $post; // 判斷該文章是否設(shè)置的縮略圖,如果有則直接顯示 if ( has_post_thumbnail() ) { echo '<a href="'.get_permalink().'">'; the_post_thumbnail(); echo '</a>'; } else { //如果文章沒有設(shè)置縮略圖,則查找文章內(nèi)是否包含圖片 $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){ // 如果文章內(nèi)包含有圖片,就用第一張圖片做為縮略圖 echo '<a href="'.get_permalink().'"><img src="'.$strResult[1][0].'" /></a>'; }else { // 如果文章內(nèi)沒有圖片,則用默認(rèn)的圖片。 echo '<a href="'.get_permalink().'"><img src="'.get_bloginfo('template_url').'/img/thumbnail.jpg" /></a>'; } } } |
代碼注釋相當(dāng)詳細(xì)了,這里不過多說明。添加新文章的時候,右側(cè)有個設(shè)置縮略圖,這樣就行了
方法二
代碼如下 | |
function getFirstImage($postId) { // 如果沒有上傳圖片, 返回空字符串 // 獲取縮略圖中的第一個圖片, 并組裝成 HTML 節(jié)點返回 |
調(diào)用的代碼如下。
代碼如下 | |
$thumb = getFirstImage($post->ID); |
文章特征圖片(Featured Image)功能
WordPress 2.9之后,WordPress 提供了文章特征圖片功能,可以為文章設(shè)定一個上傳的圖片作為特征圖片,并可以給圖片設(shè)定多個尺寸以便在不同的環(huán)境使用。可按一下步驟調(diào)用:
1. 為WordPress主題添加特征圖片支持,并設(shè)定特征圖片的尺寸和別名。
代碼如下 | |
PHPadd_theme_support('post-thumbnails'); // 支持特征圖片功能 add_image_size('thumb', 180, 180); // 別名為 thumb, 尺寸為 150x150 的設(shè)定 add_image_size('recommend', 120, 120); // 別名為 recommend, 尺寸為 120x120 的設(shè)定 add_theme_support('post-thumbnails'); // 支持特征圖片功能 add_image_size('thumb', 180, 180); // 別名為 thumb, 尺寸為 150x150 的設(shè)定 add_image_size('recommend', 120, 120); // 別名為 recommend, 尺寸為 120x120 的設(shè)定 |
我們可以將以上代碼加到 functions.php 文件, 為主題添加添加了Featured Image 支持, 并設(shè)定了 180x180 和 120x120 兩種尺寸的圖片。
其中 add_image_size 用于定義一種特征圖片尺寸, 參考 WordPress Codex, 實際上它有 4 個參數(shù)。
第 1 個參數(shù): 特征圖片的尺寸別名, 用于調(diào)用不同尺寸的縮略圖。
第 2 個參數(shù): 圖片的寬度
第 3 個參數(shù): 圖片的高度
第 4 個參數(shù): 參數(shù)是個布爾值, 用于指定圖片的裁切方式。 默認(rèn)為 false.
如果為 true, 圖片會按較大的壓縮比例處理, 多余部分裁剪掉。 比如現(xiàn)在有圖片 900x600, 要求壓縮成 150x150 的圖片, 那么會先將圖片壓縮成 225x150 的圖片, 才裁剪成 150x150.
如果為 false, 圖片會按較小的壓縮比例處理。 比如現(xiàn)在有圖片 900x600, 要求壓縮成 150x150 的圖片, 那么會將圖片壓縮成 150x100 的圖片。