Tạo thumbnail cho blog wordpress và thesis theme bằng phpthumb

by LeHienTinh · 39 comments

Trong bài viết này Tính xin hướng dẫn các bạn cách tạo ảnh thumbnail (ảnh đại diện) cho wordpress và thesis theme bằng cách dùng phpthump.

Tại Sao Tôi Chọn PhpThump?

Có lẽ sẽ có nhiều bạn thắc mắc tại sao tôi lại chọn php thump để tạothumbnail cho blog của mình trong khi bản thân wordpress và thesis theme đã cung cấp chức năng tạo thumbnail? Nhất là chức năng thumnail của thesis lại khá đẹp mắt và có nhiều tùy chọn.

Đó là vì chức năng thumnail mặc định của cả wordpress lẫn Thesis theme điều còn khá nhiều lỗi, nhất là chức năng tự resize ảnh. Mỗi lần muốn tạo thumbnail phải làm một cách khá thủ công, không được tự động như phpthump. Tốc độ load thumbnail khá chậm đặc biệt là thesis theme, nếu host không tương thích, tốc độ load trang sẽ chậm đi một cách kinh khủng.

Hướng dẫn tạo ảnh thumbnail cho blog bằng phpthump

các bạn thực hiện theo từng bước để không xót bước nào nhé.

Bước 1: Tạo function (chức năng)

Bạn thêm đoạn code sau vào file function của theme bạn đang dùng. Nếu là Thesis Theme thì chèn vào file custom_function.php.

 /********************************************************************
Get image attach
********************************************************************/
function img($width,$height) {
	global $post;
	$custom_field_value = get_post_meta($post->ID, 'thesis_post_image', true);
	$custom_field_value_3 = get_post_meta($post->ID, 'thesis_thumb', true);
	$custom_field_value_2 = get_post_meta($post->ID, 'out_image', true);
	$attachments = get_children( array('post_parent' => $post->ID, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'numberposts' => 1) );
	if ($custom_field_value == true) {
	$img_url = parse_url($custom_field_value,PHP_URL_PATH);
	print '<img src="'.get_template_directory_uri().'/custom/phpthumb/phpThumb.php?src='.$img_url.'&amp;w='.$width.'&amp;h='.$height.'&amp;zc=T&amp;q=70" alt="'.$post->post_title.'" />';
	}
	elseif ($custom_field_value_3 == true) {
	$img_url = parse_url($custom_field_value_3,PHP_URL_PATH);
	print '<img src="'.get_template_directory_uri().'/custom/phpthumb/phpThumb.php?src='.$img_url.'&amp;w='.$width.'&amp;h='.$height.'&amp;zc=T&amp;q=70" alt="'.$post->post_title.'" />';
	}
	elseif ($custom_field_value_2 == true) {
	print '<img src="'.$custom_field_value_2.'" alt="'.$post->post_title.'" />';
	}
	elseif ($attachments == true) {
		foreach($attachments as $id => $attachment) {
		$img = wp_get_attachment_image_src($id, 'full');
		$image = $image[0];
		$img_url = parse_url($img[0], PHP_URL_PATH);
		print '<img src="'.get_template_directory_uri().'/custom/phpthumb/phpThumb.php?src='.$img_url.'&amp;w='.$width.'&amp;h='.$height.'&amp;zc=T&amp;q=70" alt="'.$post->post_title.'" />';
		}
	}
	else {
		$img = get_template_directory_uri();
		$img_url = parse_url($img,PHP_URL_PATH);
		print '<img src="'.get_template_directory_uri().'/custom/phpthumb/phpThumb.php?src='.$img_url.'/custom/images/no_image.jpg&amp;w='.$width.'&amp;h='.$height.'&amp;zc=T&amp;q=70" alt="'.$post->post_title.'" />';
	}
}

Bước 2: Chèn code php gọi ảnh thumbnail vào vị trí bạn muốn hiển thị.

  • Đối với theme thông thường

Với các theme thông thường, bạn có thể chèn ảnh thumbnail vào bất kì vị trí nào bạn thích bằng cách chèn vào đó đoạn code sau.

 <div class="thumb">
	<a href="<?php the_permalink() ?>" title="Permanent Link to <?php the_title_attribute(); ?>"><?php img(100,100) ?></a>
    </div>
  • Đới với Thesis Theme

Nếu bạn đang dùng thesis theme bạn có thể tham khảo 2 vị trí mà mọi người thường chèn vào nhất đó là ở bài viết và ở teaster.

Tạo thumbnail ở bài viết.

Chèn vào file custom_function.php đoạn code sau để tạo ra chức năng này.

add_action('thesis_hook_before_post', 'thumb_teaser2');
function thumb_teaser2() { ?>
	<div class="thumb1">
	<a href="<?php the_permalink() ?>" title="Permanent Link to <?php the_title_attribute(); ?>"><?php img(245,100) ?></a>
    </div>
<?php
}

Tạo thumbnail ở teaster.
Chèn vào file custom_function.php đoạn code sau để tạo ra chức năng này.

 /********************************************************************
Add picture teaser
********************************************************************/
add_action('thesis_hook_after_teaser_headline', 'thumb_teaser');
function thumb_teaser() { ?>
	<div class="thumb">
	<a href="<?php the_permalink() ?>" title="Permanent Link to <?php the_title_attribute(); ?>"><?php img(100,100) ?></a>
    </div>
<?php
}

Ngoài ra bạn có thể tham khảo theme các hook của thesis theme để có thể chèn vào những vị trí mà bạn cảm thấy hợp lý hơn.

Bước 3: Upload phpthump lên host

Cuối cùng là upload phpthump lên host trong thư mục custom của thesis theme bạn nhé. Bạn có thể tìm trên mạng hoặc download tại đây.

Một số lưu ý

  • Bài viết này học hỏi từ bài tự lấy ảnh trong bài viết của Hutruc’s Blog.
  • Bạn có thể tạo thêm css để trang trí cho ảnh thumbnail của mình đẹp hơn. thông qua thẻ thumb
  • Bạn có thể thay đổi kích cỡ ảnh thumbnail bằng một giá trị khác cho phù hợp với blog bạn bằng cách thay thế số (100,100) (chiều rộng-chiều cao) bằng một cặp số khác.
  • Php thump có thể lấy ảnh đầu tiên trong bài viết, ảnh ngoài, hoặc ảnh trong post img làm thumbnail. Tuy nhiên để sử dụng tốt nhất, bạn nên chọn ảnh thumnail của mình sao đó up lên host của mình bằng các click button add ad image.

{ 39 comments… read them below or add one }

Cute Xinh May 19, 2010 at 6:01 am

Thank bác nhé, mấy hôm trước em tìm mãi

Reply

Sức khoẻ gia đình May 19, 2010 at 12:24 pm

Cái này khá hay. Thanks

Reply

LeHienTinh May 19, 2010 at 7:36 pm

Vâng hi vọng có thể giúp được bác.
Chúc bác vui.

Reply

Phương May 19, 2010 at 7:11 am

Lúc trước thấy bác than phiền về vấn đề này, nay đã có bài viết rồi hén! bài viết hay đó bác! :)

Reply

LeHienTinh May 19, 2010 at 7:37 pm

Đúng là khi tìm ra cái này em rất thích bác ạ.
Nhẹ nhàng hơn trước nhiều hihi,…

Reply

Hùng May 19, 2010 at 7:58 am

Đang dùng nó

Reply

LeHienTinh May 19, 2010 at 7:38 pm

HÌ, chuyển qua host nào rồi anh, Một số host dùng thumbnail mặc định không được tốt là sao e cũng không hiểu nữa?

Reply

Hai's Blog May 19, 2010 at 1:13 pm

Nhờ có cái này tốc độ site e tăng đáng kể, cảm ơn bác nhé!.
Nãy mấy lần cứ định vào Comment thì lại mất điện, giờ mới CM dc :)
Cái “Top” ở footer không hoạt động hả bác :)

Reply

LeHienTinh May 19, 2010 at 7:39 pm

Bác nói mới để ý, để e xem lạii xem nó bị j rồi.
Thanks bác.

Reply

Hai's Blog May 20, 2010 at 2:32 am

Chắc bác bỏ mất cái jquery của nó rồi :)

Reply

Lehientinh May 20, 2010 at 7:03 am

Đúng rồi. Em bỏ cái jq mà quên mất hihi

Reply

xuantuyen May 19, 2010 at 1:57 pm

Hi, mấy hôm nay chắc bận thi hả nên hôm nay mới thấy T có bài viết ?

Reply

LeHienTinh May 19, 2010 at 7:40 pm

Hok phải thi mà là học, học kì hè có 5 tuần thôi nên hok dám khinh xuất, chậm là rớt như chơi híc.

Reply

nguyentrung167 May 19, 2010 at 2:56 pm

lần nào vào blog bác, em cũng ấn tượng bởi cái hình minh họa… :)

Reply

LeHienTinh May 19, 2010 at 7:40 pm

Hì, cám ơn bác. Chú kún dễ thương chứ bác.
HIhihi

Reply

tuananhg May 19, 2010 at 3:12 pm

bài này khá hay đó bác

Reply

LeHienTinh May 19, 2010 at 7:41 pm

Vâng cảm ơn bác nhiều.
Chúc mỏ thủ thuật ngày càng phát triển bác nhé. Huy động quá nhiều nhân tài luôn. ^^

Reply

Pumama May 19, 2010 at 3:39 pm

Bài này là viết theo yêu cầu bạn đọc – cụ thể là em hihi

Reply

Tran Quang May 19, 2010 at 5:00 pm

Nhất bác rồi còn gì ! hi hi

Reply

Tran Quang May 19, 2010 at 4:59 pm

Hay tuyệt đó ! Có rất nhiều theme không hỗ trợ chức năng này !

Reply

LeHienTinh May 19, 2010 at 7:43 pm

Cảm ơn T Quang đã động viên nhé,
Chúc Q vui.

Reply

sonmanutd May 20, 2010 at 8:55 am

Oài! Chưa ổn định được theme hả bác :D! Lâu rồi mới ghé nhà bác :D

Reply

LeHienTinh May 21, 2010 at 3:12 am

Ổn định luôn rồi bác ạ. Theme này dùng khá tốt, lại nhẹ nhàng nữa.

Reply

tuananhg May 21, 2010 at 5:03 pm

em đã làm theo cách hiển thị thumbnail ở post nhưng nó xuất hiện luôn ở những trang như liên hệ , liên kết , sơ đồ blog. Bác giúp em khắc phục lỗi này với

Reply

LeHienTinh May 22, 2010 at 5:11 am

Vì add nó vào before post nên nó hiện cả trong phần page bác ạ. Bác có thể add vào chỗ khác hoặc edit trang sau đó thêm hình là ok.

Reply

Hutek May 23, 2010 at 5:16 pm

Hihi, cái này là phpthumb chứ không phải php thump đâu nhé. Chú Tính sửa ngay không độc giả lại hiểu nhầm, phpthumb rất mạnh và cái đoạn code trên chỉ là một phần nhỏ công lực của nó thôi

Reply

LeHienTinh May 23, 2010 at 5:18 pm

Vâng, em cảm ơn anh Hùng đã nhắc nhở :)

Reply

Hutek May 23, 2010 at 5:19 pm

Anh Hưng nhá, lần sau còn gọi nhầm là chém luôn đấy

Reply

LeHienTinh May 24, 2010 at 2:17 am

Hi, Sorry anh. Vậy mà lâu nay em cứ tưởng… Hok nhầm nữa đâu ạ. hì

Reply

Hai's Blog May 24, 2010 at 6:51 am

Còn phần công lực còn lại của nó là gì ạ, mong a chỉ giáo cho mọi người cùng biết :)

Reply

Mèo Lười May 25, 2010 at 5:38 am

đang tìm hiểu cái này, đọc code khó hiểu quá , dạo này ngu đi nhiều rồi :((

Reply

LeHienTinh May 25, 2010 at 7:20 am

Tại nó phức tạp thật mà bác. Bác đừng tự trách mình thế chứ :D

Reply

download Free Pdf Ebooks May 26, 2010 at 5:24 pm

very interesting info, that’s too lucky to find a blog you will allow me to bookmark your blog

Reply

LeHienTinh May 27, 2010 at 4:11 am

I funny because you visited. Thank you like my blog.

Reply

Thiết kế loGO May 27, 2010 at 11:56 am

Về vụ này thì mình thấy jooomla có plugin imageresize hỗ trợ cực tốt, có thể leech image và hỗ trợ host ngoài làm thum tốt hơn wp, Cái này do tự động thu nhỏ thành thum nên vào trang chủ nặng cực kì luôn :(( Chán với vụ image này thật

Reply

LeHienTinh May 27, 2010 at 12:05 pm

Mình thấy vậy tiện hơn, nhất là site sử dụng nhiều kích cỡ thumnail như site của mình. Tới 3 loại thumnail ^^>

Reply

Thiết kế loGO May 29, 2010 at 3:58 am

Nhưng miìn xài hostgator gói baby rồi mà vẫn load cực nặng, đang tính nâng gói business đây, Site của bác cũng nặng như site nhà em mà, thum nhiều quá :((. Có khi em chuyển qua hostvn xài thôi

Reply

LeHientinh May 29, 2010 at 4:19 am

Em thì đang sử dụng host free, chưa có tiền mua con gà tồ nữa đây.

Reply

Thiết kế loGO May 29, 2010 at 4:22 am

Bác sử dụng free của bọn nào thế, k có link quảng cáo à,

Reply

Leave a Comment

Previous post:

Next post: