縮略圖的插件有很多種,比如我最常用的wp-thumbnails,不過在實際運用中我發現,這個插件有時候會跟某些主題有衝突,而且實現不同尺寸的方法也比較複雜,在這裡給大家共享一段非插件實現不同尺寸的縮略圖的方法。經測試多個主題無衝突。
* T9 X% B) |' M0 I, T S( \9 B1、在主題文件夾中建thumbnail.php文件,添加如下代碼:0 l$ C6 E& o9 \; \* a. c
7 }8 I8 y2 \, C5 s. ~0 \4 [
<div class="thumbnail_t">
9 C: l5 T6 U& Z<?php if ( get_post_meta($post->ID, 'thumbnail',4 d5 @) i! W/ d( C
true) ) : ?>! h4 K7 R# @) j; p' c2 U# X5 }
<?php $image = get_post_meta($post->ID, 'thumbnail',( \. t! s9 l/ s3 B" D$ @
$ K; Q6 D7 g5 |1 E/ W4 v+ ztrue); ?>6 e6 b) z/ f) A/ ~0 _" u8 b' F: r
<a href="<?php the_permalink() ?>" rel="bookmark"
& t+ ~: ~5 G* _' A8 H1 ~3 Ptitle="<?php the_title(); ?>"><img src="<?php echo $image; ?>"1 V% f/ |0 u( ~0 P( |' [6 j
alt="<?php the_title(); ?>"/></a>
0 L3 ~1 g6 |1 `. E4 O# U# ^<?php else: ?>6 u, \ K/ k2 r9 B% G- e4 V
</div>
% I3 l+ X6 J7 A f) L6 V" z2 P* D<!-- 截圖 -->! R& I5 P; W7 U z% W
<div class="thumbnail">6 G7 l9 F( K& j' v; R/ }4 |
<a href="<?php the_permalink() ?>" rel="bookmark"( t+ i) T( g, i b
title="<?php the_title(); ?>">" w0 x+ T5 B5 [1 B
<?php if (has_post_thumbnail())
2 G) k! [7 q6 j, J) B{ the_post_thumbnail('thumbnail'); }
# @2 }1 B- b7 X( Q; T! Oelse { ?>+ i& O/ \7 g! r [3 _
<img class="home-thumb" src="<?php echo7 X1 B; h S; V4 c+ p
catch_first_image() ?>" width="125px" height="80px" (這裡的尺寸可以修改,第一個為寬,第二個為高)
: Y6 a6 U4 u# }* zalt="<?php the_title(); ?>"/>' m V f! X$ u P% ^! C! q
<?php } ?>2 C& R2 W9 j: t! y
3 c+ j2 @: Y/ v$ f3 s9 @
</a>) q5 @& k) M, } c3 G/ O- I2 j
<?php endif; ?>
7 w9 A. ~% O0 H- t2 b0 x</div>% ^5 h4 }% C1 d+ M9 f
2、在主題文件夾裡面的functions.php文件中添加下面代碼:& i/ o, v( w$ o `
5 c- P- w$ Q) d+ z. P<?php
( Z: S# }+ j0 Y. Hif ( function_exists('add_theme_support') )
3 Z- X; k7 c$ u2 J+ z& a! t5 L: Q, Fadd_theme_support('post-thumbnails');
) \# P' q# O9 d! _5 h) Pfunction catch_first_image() {
! N: i8 A0 [+ y& K. }global $post, $posts;1 Z& c l/ Z5 X) k: R- h
$first_img = '';) B- _+ j( L$ _$ I( H, `
ob_start();; v: d0 j) H: Q9 l$ G. _
ob_end_clean();5 f/ ~& }3 t) d
$output =$ L2 W2 \; U3 @% n5 C
preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i',0 N9 Y* g, G5 t
$post->post_content, $matches);
) U* K9 T! C8 j, K) L$first_img = $matches [1] [0]; E( V, C, h. p2 n3 Q
- `9 P; q9 j( l
if(empty($first_img)){ //Defines a default image
& R6 }$ S1 k8 V' ^3 a$random = mt_rand(1, 10);
* S# q* U- [$ Y' v5 Cecho get_bloginfo ( 'stylesheet_directory' ); a! L/ U5 J8 X S0 d& ^9 w
echo '/images/random/'.$random.'.jpg';( V# Y1 l: o. N& Y
}
9 d! X. H0 `$ zreturn $first_img;4 k! m% O* ^, t, H# B. c% Z8 n- O
}
# w# J; ~, I, ]) \. a) r }?>9 k! P! Y- @& y4 y0 r5 i! l2 a! o
通過下面代碼調用。; f. f! K7 P5 l2 g" r* k+ H( \
<?php include('/thumbnail.php'); ?>' T1 F& J& ~% ]
" F1 |; n+ J& `3 A6 X* a# C1 t
; V7 J' s" F* G4 @
如果,你想要創建一個新的尺寸的縮略圖,那麼可以在主題文件夾中建thumbnail2.php文件,添加與第一步相同的代碼,在我標記可以修改尺寸的地方修改為你新縮略圖的大小,然後可以直接跳過第二步(前提是第二步已經做過)的情況下通過<?php include('/thumbnail2.php'); ?>調用就可以調出新尺寸的縮略圖了。其他尺寸縮略圖以此類推。
0 W& r" c$ r# @' l
& [ n |* l; y3 ~5 |) ~/ U7 x) L. G6 i+ T
9 V+ {4 O/ K5 E/ h |