縮略圖的插件有很多種,比如我最常用的wp-thumbnails,不過在實際運用中我發現,這個插件有時候會跟某些主題有衝突,而且實現不同尺寸的方法也比較複雜,在這裡給大家共享一段非插件實現不同尺寸的縮略圖的方法。經測試多個主題無衝突。' A. m. w- i* S" I; [! ^
1、在主題文件夾中建thumbnail.php文件,添加如下代碼:
. a) h* P( ]" t2 C7 e. F. Y! `7 t- w% L0 F! h* y& c' P7 j
<div class="thumbnail_t">$ z L F" U+ Y3 ?! A) x5 h5 d
<?php if ( get_post_meta($post->ID, 'thumbnail',
: X4 a' m: c7 Z6 _' h7 rtrue) ) : ?>
+ K1 k9 Z9 z+ ]<?php $image = get_post_meta($post->ID, 'thumbnail',- X$ l; I. x H) @
7 N: L( v# n ?' _5 l: Q& S" D
true); ?>0 Y9 l) ~, ^4 R4 d! \
<a href="<?php the_permalink() ?>" rel="bookmark"5 I8 \/ w% Y. ~2 a% q g& a" E1 H
title="<?php the_title(); ?>"><img src="<?php echo $image; ?>"" A9 {0 l* }8 h, r9 G
alt="<?php the_title(); ?>"/></a>6 a( V1 M9 n0 _" c \' v9 q/ [
<?php else: ?>" ]0 c3 ?, L+ w7 H. x
</div>9 v/ [) t! k1 p; m5 t0 i+ e6 f
<!-- 截圖 -->
7 C- R# M6 I( Z9 ~1 n7 F; @<div class="thumbnail">
3 ` J3 w: L) E<a href="<?php the_permalink() ?>" rel="bookmark"
: `& G: p$ b: u; \4 i( ~' {title="<?php the_title(); ?>">" E! c) U4 G9 t8 Z
<?php if (has_post_thumbnail())+ c+ g" ]0 w" ]3 R
{ the_post_thumbnail('thumbnail'); }, }7 |+ {# X6 J7 x5 k/ `
else { ?>$ @- i m: A. ]4 S0 u* h
<img class="home-thumb" src="<?php echo
* X6 f3 }& a$ U. v/ k& K7 Hcatch_first_image() ?>" width="125px" height="80px" (這裡的尺寸可以修改,第一個為寬,第二個為高)
8 X1 e8 o- I z4 s) X! ^* F+ Ralt="<?php the_title(); ?>"/>
( p2 R. y, t* q$ B7 o2 h) C" k<?php } ?>+ J; C5 e7 I2 s- U- d2 i- N& q7 w2 Z
6 I2 C9 B' F5 Y' ~5 X0 T
</a>
% G( b% U9 d, H. B2 M- ~ J J<?php endif; ?>
0 _; \: [# j% j2 Y9 Y1 |</div>
# N5 D f/ N8 e, b! G9 ^. N7 Y2、在主題文件夾裡面的functions.php文件中添加下面代碼:0 B6 E; o; y9 C" i0 B+ S' q
# A% Y5 e7 R4 L* S. l# k9 o3 G<?php, e7 k' c% A6 M% C- d% @
if ( function_exists('add_theme_support') )0 R( o8 `) [* e) Z& M9 K! b
add_theme_support('post-thumbnails');
5 C6 c3 J! F" ?3 lfunction catch_first_image() {4 n: Z2 V7 \. i3 v) d! O O. u- q
global $post, $posts;
) v3 t" I' o9 @- Q0 X$first_img = '';' y) i+ d" p; m: I3 N
ob_start();
0 u; b7 Q0 t, {# F9 {ob_end_clean();
4 I% c% e/ u5 ^9 m5 e$output =
^( J: P( c p, F; b! d( Z1 lpreg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', B @( `( `5 b5 G. f& D' F7 E
$post->post_content, $matches);% b9 `( H6 i3 U7 {9 L% O
$first_img = $matches [1] [0];
8 ]: d9 r) C% J x; F2 J8 D: @# J2 E" f) q a7 |. ~) ~, d
if(empty($first_img)){ //Defines a default image
! M2 t- V3 X- S2 A$random = mt_rand(1, 10);) ]5 ? w- g: H) w' b/ [! v
echo get_bloginfo ( 'stylesheet_directory' );+ X5 t0 E! Q+ K9 h
echo '/images/random/'.$random.'.jpg';
% Z) |* D" Q6 d7 W, M} x4 f1 s: W. F' M8 O+ J n
return $first_img;6 U% F n; x2 n$ V
}
8 ^ c, N" A8 o; s?>" D1 b7 G# [' b) O# D+ h
通過下面代碼調用。: V& J0 A' C) s/ }8 H2 c* {
<?php include('/thumbnail.php'); ?>0 A9 T0 m1 T: J0 L. ]: M# b z
& @4 B& S6 f O4 c& }9 Z ^
- K! {* p5 P. T5 r: w- p7 E
如果,你想要創建一個新的尺寸的縮略圖,那麼可以在主題文件夾中建thumbnail2.php文件,添加與第一步相同的代碼,在我標記可以修改尺寸的地方修改為你新縮略圖的大小,然後可以直接跳過第二步(前提是第二步已經做過)的情況下通過<?php include('/thumbnail2.php'); ?>調用就可以調出新尺寸的縮略圖了。其他尺寸縮略圖以此類推。" U9 V5 f5 H: H+ t& K9 H
' Q, r) k) o/ h$ d
: k, s- r1 o6 p5 Y v9 O; d% k( ?+ f
) O* M2 `% L$ ~% O' t
|