过期域名预定抢注

用戶名  找回密碼
 免费注册

非插件實現縮略圖的wp代碼

[複製鏈接]
發表於 2013-12-23 20:43:14 | 顯示全部樓層 |閱讀模式
縮略圖的插件有很多種,比如我最常用的wp-thumbnails,不過在實際運用中我發現,這個插件有時候會跟某些主題有衝突,而且實現不同尺寸的方法也比較複雜,在這裡給大家共享一段非插件實現不同尺寸的縮略圖的方法。經測試多個主題無衝突。
* }- ?0 R$ M( ?2 [* m. ^0 P1、在主題文件夾中建thumbnail.php文件,添加如下代碼:
% S$ Z: B- K$ x% o- d# k1 g
: k) L; e: h$ v8 R0 a9 e0 o  |  ]<div class="thumbnail_t">
3 n& r& A2 R9 N2 ~; q" I<?php if ( get_post_meta($post->ID, 'thumbnail',
9 l% z0 ^$ @9 B% Q/ xtrue) ) : ?>3 v' k2 G+ a8 S
<?php $image = get_post_meta($post->ID, 'thumbnail',1 u* Y- O$ p1 d7 |3 K

% j6 J1 g) W' [true); ?>. |' ]9 |- H! a5 V
<a href="<?php the_permalink() ?>" rel="bookmark"
8 i  g! p* J" I* Ttitle="<?php the_title(); ?>"><img src="<?php echo $image; ?>"
* i8 [# n8 E- f( palt="<?php the_title(); ?>"/></a>
1 X( v) l& h, R+ C<?php else: ?>! A+ J' h0 A) c( g8 Q9 A# M
</div>
+ e; J- t2 G) D0 h<!-- 截圖 -->
9 }  I( N! n4 l<div class="thumbnail">1 i8 G7 k. B5 U6 D+ G( b: ]
<a href="<?php the_permalink() ?>" rel="bookmark"
2 P- h2 m  j/ i9 Ntitle="<?php the_title(); ?>">
  f* Q9 G" K% n. i# V7 D! G' b<?php if (has_post_thumbnail())6 b/ B9 z& a% H- q
{ the_post_thumbnail('thumbnail'); }
, {1 p0 F; m" }: b% `8 W) p5 welse { ?>+ _; d! m6 }2 _1 H2 f+ r
<img class="home-thumb" src="<?php echo. D1 j- l5 T& {4 O
catch_first_image() ?>" width="125px" height="80px"  (這裡的尺寸可以修改,第一個為寬,第二個為高)! b6 J% b4 L7 S0 w* {! I) u* Z
alt="<?php the_title(); ?>"/>3 @0 ^* U" ~. f# p
<?php } ?>
; i. H7 f/ e# ^1 B6 g0 r
7 O; f" C, \+ a4 `( ~) B</a>
3 m1 {) W; E/ l0 {- r<?php endif; ?>8 O; [2 n% n; x& s0 s) @. M4 _% r# p
</div>
( N& }- Q+ |3 p) _! q2、在主題文件夾裡面的functions.php文件中添加下面代碼:' l' y" O7 h( l" h

! h6 t+ L3 G, v5 j<?php1 L8 Y5 b( B* E; m9 x9 L+ V, l
if ( function_exists('add_theme_support') )1 z. Y" U( T- i5 P
add_theme_support('post-thumbnails');  [; ~0 Q5 i/ I; @: N: O; e
function catch_first_image() {
. [' D5 A7 y8 d0 Iglobal $post, $posts;. ~( w4 E- L  F+ S% N& z
$first_img = '';
- j; n) ^9 Y% ^ob_start();
7 H5 Y8 H- @% a4 T. K8 _ob_end_clean();. N/ b% M! f9 @5 g& k- D6 J
$output =
, S4 G. m7 h" ]* Y9 {3 S. a4 _preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i',3 H3 _4 L* f; E( L6 h, H. W
$post->post_content, $matches);; {, C1 W# a. f2 s% a2 G
$first_img = $matches [1] [0];' Q$ @, c: F. |- f) t# n
, g% h- F( D1 H7 ?- D# P( T6 X
if(empty($first_img)){ //Defines a default image4 d8 |. Y1 Q( e$ ~
$random = mt_rand(1, 10);& A! u4 f; d& W' P0 ]3 H2 Z4 k
echo get_bloginfo ( 'stylesheet_directory' );$ p4 |  m8 Y. b1 o7 W
echo '/images/random/'.$random.'.jpg';+ y' Y& h, Q% n- P2 @) t$ b. }
}
3 i/ t- Z0 c; V( o3 qreturn $first_img;
" o  q" x1 x4 x}! L* t) Z1 L6 D6 S
?>
/ e) a' U/ g7 X6 F! {0 k通過下面代碼調用。$ ]& }8 S+ G) |
<?php include('/thumbnail.php'); ?>
7 }5 H9 O. q- x6 F4 ?: w
% a0 s* K" l0 d0 o! ]9 x9 I0 \/ |, Z9 {& ^6 @9 a
如果,你想要創建一個新的尺寸的縮略圖,那麼可以在主題文件夾中建thumbnail2.php文件,添加與第一步相同的代碼,在我標記可以修改尺寸的地方修改為你新縮略圖的大小,然後可以直接跳過第二步(前提是第二步已經做過)的情況下通過<?php include('/thumbnail2.php'); ?>調用就可以調出新尺寸的縮略圖了。其他尺寸縮略圖以此類推。
( X3 [7 k6 R2 Q+ @6 z$ {3 n! }8 X+ _# _) X/ O( d+ v. s
( S3 j) Q. p. i1 `# D  L, ?" D
! Z; {5 ?% P% [. t$ \
發表於 2013-12-23 23:11:06 | 顯示全部樓層
不是有個特色圖像功能在post中,用這個就行
4 N, E% V, L0 J- w9 u
回復 给力 爆菊

舉報

您需要登錄後才可以回帖 登錄 | 免费注册

本版積分規則

过期高净值品牌域名预定抢注

點基跨境 數位編輯創業論壇

GMT+8, 2025-7-8 14:43

By DZ X3.5

小黑屋

快速回復 返回頂部 返回列表