縮略圖的插件有很多種,比如我最常用的wp-thumbnails,不過在實際運用中我發現,這個插件有時候會跟某些主題有衝突,而且實現不同尺寸的方法也比較複雜,在這裡給大家共享一段非插件實現不同尺寸的縮略圖的方法。經測試多個主題無衝突。
4 n, r8 W1 _. P1 L# A) e& j1、在主題文件夾中建thumbnail.php文件,添加如下代碼:- g) D* q- X% k$ z3 d2 T
+ S m) L$ A' p) U
<div class="thumbnail_t">! U7 w+ _0 n$ X% e8 V
<?php if ( get_post_meta($post->ID, 'thumbnail',
9 Y; q1 |( g$ mtrue) ) : ?>
( y6 g- u Q3 c$ ?# N" l# z' @<?php $image = get_post_meta($post->ID, 'thumbnail', k: B8 H6 |% l, W5 P) ~6 |( }* e" L
% ?4 Z! F2 T9 a. w4 t3 Ftrue); ?>
8 i( K# S [" I* `<a href="<?php the_permalink() ?>" rel="bookmark"
3 W$ Z3 v" l3 Q+ j: Ttitle="<?php the_title(); ?>"><img src="<?php echo $image; ?>"
4 Z8 P7 f+ z& H2 ^8 E* l: J; Lalt="<?php the_title(); ?>"/></a>2 M) P; N( l( e \$ M: p
<?php else: ?>) j3 a; b# I& \+ h/ K7 @
</div>
e5 {' G$ W2 N! L9 b1 V<!-- 截圖 -->
( Q' g B' K* a6 \) W<div class="thumbnail">
# Z0 d6 Y5 ?% ]! m3 [5 V, M<a href="<?php the_permalink() ?>" rel="bookmark"
) h+ M. M7 M6 v0 ititle="<?php the_title(); ?>">
4 K4 F2 B: D7 \$ A8 E+ G<?php if (has_post_thumbnail())
& {1 C5 d* O, z5 _/ [{ the_post_thumbnail('thumbnail'); }% D6 S- ^ ^# Y7 {: b6 B0 h% W
else { ?>4 \2 O+ r6 k5 _: z. |
<img class="home-thumb" src="<?php echo
4 g& n* \4 R; q* g& p' Scatch_first_image() ?>" width="125px" height="80px" (這裡的尺寸可以修改,第一個為寬,第二個為高)4 f; ]' l- W5 @
alt="<?php the_title(); ?>"/>0 Q8 `& B0 J8 n
<?php } ?>
! u/ M- o5 Y8 N7 _* p- U3 z
/ P0 g- V6 s a5 x1 O# F</a>- Z; R" W; G3 ^; E
<?php endif; ?>' ] b! B$ P3 L, q4 \2 O0 W/ J
</div>6 M$ r7 ?& c# V( P
2、在主題文件夾裡面的functions.php文件中添加下面代碼:
1 U! r/ d- _5 J( i* {) {
9 Q6 X( [5 q$ f2 M/ T$ J<?php W$ L9 p2 B6 d5 ~0 s7 y! ]: n! ~
if ( function_exists('add_theme_support') )' n2 y4 I4 V% f
add_theme_support('post-thumbnails');9 q. T! k U0 w o6 R
function catch_first_image() {
6 L) }1 J* O" z1 fglobal $post, $posts;
* q4 Y$ U$ \8 P. v2 ^$first_img = '';9 L# M) [1 H+ c/ n6 P: N I
ob_start();
0 U _% \" e- e+ _& eob_end_clean();
( C, A8 S7 \) p, q5 c+ Q; L$output =4 M7 V" k0 b5 L0 V1 W
preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i',( }, v+ N. K/ g9 o
$post->post_content, $matches);9 f: S$ I9 S4 l( t/ {+ t4 j
$first_img = $matches [1] [0];; U0 n1 \7 V0 V. i" a7 P$ [- ]
7 w% g2 i- u+ \5 F4 tif(empty($first_img)){ //Defines a default image1 U: P! `/ f' m# L/ g, H7 v
$random = mt_rand(1, 10);, o( }- l+ B2 J4 j) z: b
echo get_bloginfo ( 'stylesheet_directory' );' c7 r, o. {1 _" m! C$ \' _" Q7 d
echo '/images/random/'.$random.'.jpg';& M7 A, S% O! z- y( O& w
}
u1 G" {+ Y8 W0 L$ [3 C; D/ ireturn $first_img;, L% A1 a8 h* y( d4 c
}, P6 J$ y! v# F$ Q
?>
6 R0 C6 b& |- a% l通過下面代碼調用。
) ]; R) _4 d& y7 ]<?php include('/thumbnail.php'); ?>
' ?6 `+ Y9 A% @" Q9 K6 O
$ y1 N1 R* \& v7 F* e6 R7 S. ~; f5 x: q3 W" I. W0 w4 D4 q: M* W1 |
如果,你想要創建一個新的尺寸的縮略圖,那麼可以在主題文件夾中建thumbnail2.php文件,添加與第一步相同的代碼,在我標記可以修改尺寸的地方修改為你新縮略圖的大小,然後可以直接跳過第二步(前提是第二步已經做過)的情況下通過<?php include('/thumbnail2.php'); ?>調用就可以調出新尺寸的縮略圖了。其他尺寸縮略圖以此類推。' h f, W" l5 D* A% r: Y+ ]
( k; ~( j* [7 X. H7 m# R: \3 v& \" a
# u9 T! M9 ~- q$ s$ k
0 T: v, _- I$ r |