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>'; //開源軟件:Vevb.com
- }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 的圖片.
|
新聞熱點
疑難解答
圖片精選