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.*?(?: |/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>';
}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 '';
}
// 獲取縮略圖中的第一個圖片, 并組裝成 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 的圖片。
下圖是兩個縮略圖,原圖 1024x768,左縮略圖是 add_image_size('xxx', 120, 120, true);,而右圖使用的是 add_image_size('xxx', 120, 120, false);.
|
新聞熱點
疑難解答