loading..

[TheSis Tut] Tự lấy ảnh trong bài viết.

by Huỳnh Trung on March 7, 2010

Dạo này bận rộn quá nên cũng chẳng viết được bài nào. Tranh thủ viết bài cho đỡ trống blog (Viết xong lại off khoảng 1 tuần nữa). Nội dung bài viết này là gì? Thông thường khi viết bài bạn cần phải add custom field để hiển thị ảnh. Bài viết này sẽ hướng dẫn các bạn thực hiện việc này một cách tự động (bạn vẫn có thể dùng cách thủ công). Code được trích từ code của HuTek và được HT edit lại.

Bạn thêm đoạn code sau vào file custom_functions.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.'" />';
	}
}

Giải thích:

Trong đoạn code trên sẽ ưu tiên lấy ảnh trong phần post image của thesis, post thumb, ảnh từ host bên ngoài (sử dụng custom field out_image), cuối cùng là lấy ảnh đầu tiên trong bài viết.

Như vậy là xong phần lấy ảnh. Bây giờ để hiển thị ảnh thì tùy bạn thích đặt ở đâu thì bạn sử dụng openhook để thêm vào nhé. HT sẽ ví dụ mẫu một vị trí mà các bạn thường gặp nhất. Thêm ảnh thumb bên dưới tiêu đề bài viết teaser.

Để không hiển thị ảnh mặc định của thesis

Bạn edit file teasers.php trong lib/functions. Thay nội dung của dòng thứ 42 bằng đoạn sau:

$post_image = '';//thesis_post_image_info('thumb');

Thêm ảnh vào bên dưới tiêu đề bài viết teaser

Bạn thêm đoạn code sau vào file custom_functions.php.

/********************************************************************
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
}

Trong đoạn code trên bạn có thể thay 100 bằng giá trị khác để có ảnh lớn hoặc nhỏ hơn tùy thích. Bạn cũng có thể thêm CSS để cho nổi bật ảnh thumb hơn.

Chúc bạn thành công!

P/s: Do trong đoạn code trên có sử dụng phpThumb để resize ảnh nên bạn cần có phpThumb đặt bên trong thư mục custom nhé. phpThumb có thể tìm trên mạng hoặc đown tại đây.


{ 7 trackbacks }

HuTruc
March 7, 2010 at 8:03 pm
Tạo thumbnail cho blog wordpress và thesis theme bằng phpthump
May 19, 2010 at 12:54 pm
Tạo thumbnail cho blog wordpress và thesis theme bằng phpthumb « BKMetalx
May 30, 2010 at 11:03 am
Tạo thumbnail cho blog wordpress và thesis theme bằng phpthumb
June 3, 2010 at 11:00 pm
Hiển thị bài viết ngẫu nhiên và xem nhiều nhất không dùng plugins — Hư Trúc Blog
June 8, 2010 at 6:52 pm
Thêm hình thumbnail cho bài viết dễ dàng với plugin fw-post-image – Phần 1 — Việt Coding | CSharp, Delphi | ASP.NET, PHP, ASP, JSP | WordPress, VBulletin
June 13, 2010 at 10:23 pm
Tạo Tabs widget: Popular post, Latest post, Comment và Tag
June 15, 2010 at 2:18 am

{ 35 comments… read them below or add one }

1 Mr.tỏi@blogtinhoc.info March 7, 2010 at 8:10 pm

Quá hay, quá hay. Mình đã cần cái này lâu lắm rồi. thanks hutruc nhiều nhé. :chem:

Reply

2 Mr.tỏi@blogtinhoc.info March 7, 2010 at 8:33 pm

Hutruc ơi, tỏi hỏi phát, khi download phpThumb về rồi upload nó lên đâu hở Hutruc?, còn vướng bước này thôi :2:

Reply

3 Huỳnh Trung Post on Mobile March 7, 2010 at 8:43 pm

Bên trong thư mục custom của thesis, bên trên có ghi mà

Reply

4 Mr.tỏi@blogtinhoc.info March 7, 2010 at 9:03 pm

À rồi rồi, tỏi quên k xem code. hihi. THanks hutruc 1 lần nữa

Reply

5 Mr.tỏi@blogtinhoc.info March 7, 2010 at 9:16 pm

K đc hu truc ơi, híc, oải thế, tỏi dùng bloggusion ấy, nhưng k đc :chem:

6 Shinichi March 7, 2010 at 9:38 pm

Hi,

Tôi không dùng Thesis nên không rõ nhưng theo tôi biết thì từ WP version 2.9 thì đã có chức năng lấy ảnh tự động ở bài viết làm thumb rồi mà ta ?

Reply

7 Mr.tỏi@blogtinhoc.info March 8, 2010 at 5:07 pm

Hôm trước em có ghé qua site của anh, nhưng blog của a k vào đc nên e k đặt link của anh được. hii :chem:

Reply

8 Huỳnh Trung March 13, 2010 at 3:50 pm

Blog của bác ấy nhiều khi HT vào cũng chẳng được :chem:

Reply

9 Huỳnh Trung March 13, 2010 at 3:24 pm

Thế à, trước giờ cũng không quan tâm lắm, để hôm nào rãnh xem lại xem, thanks bác đã thông tin nhé :2:

Reply

10 storyteller Nguyễn March 7, 2010 at 9:43 pm

Chủ đề này host quá, em lại chậm chân rồi. Nhưng mà phải cám ơn anh nhiều lắm ý. :2:

Reply

11 Huỳnh Trung March 13, 2010 at 3:25 pm

Không có gì :)

Reply

12 Huỳnh Trung Post on Mobile March 7, 2010 at 9:59 pm

Cụ thể là thế nào, không lấy ảnh được? Không hiển thị ảnh được hay không resize được. Nếu không hiển thị ảnh bạn cần xem lại trong code có hàm đó hay chưa, nếu rồi, bạn đổi tên hàm là được. Nếu không resize có thể nhiều nguyên nhân, phpThumb bạn vừa tải về cần phải giải nén và up lên thư mục custom của thesis. Cụ thể sau một tuần nữa HT mới Online và hổ trợ chi tiết.

Reply

13 storyteller Nguyễn March 7, 2010 at 10:18 pm

oh ho, làm được rồi, cám ơn anh nhiều nhé, mà anh dùng Opera, lại thêm con N77 hay sao ý, cố gắng viết tiếng việt nhé. :2:

Reply

14 Huỳnh Trung March 13, 2010 at 3:28 pm

Anh dùng con N73 chứ không phải N77, cái này không hổ trợ viết tiếng Việt, cũng có nhiều cách nhưng hơi bất tiện nên cần thiết lắm mới dùng.

Reply

15 vitvn.net March 8, 2010 at 11:05 am

ai cho em hỏi làm dùng plugin nào để post video youtube giốg như trong 4rum.chỉ cần click vào icon rùi add link ý,lúc trước e có nhưng quên mất cái tên,h tìm mãi ko dc,các a ai bít giúp e với

Reply

16 Huỳnh Trung March 13, 2010 at 3:48 pm

Plugin loại này HT cũng không thường dùng nên không rành lắm.

Reply

17 vitvn.net March 14, 2010 at 1:01 am

chả nẽ ko ai bít ạ,hộ em với,mất hết khách truy cập rùi.huhu

Reply

18 Huỳnh Trung March 14, 2010 at 10:14 am
19 vitvn.net March 17, 2010 at 2:56 pm

hix bác ơi,nó dùng như nào, em cài vào có thấy j đâu,hình như cái wp của em nó bị sao ý

20 Huỳnh Trung March 17, 2010 at 3:02 pm

Cách sử dụng: [youtube]linkyoutube[/youtube]
Muốn thay đổi kích thước màn hình:
[youtube w="300" h="250"]linkyoutube[/youtube]
Linkyotube chính là link trên thanh adress, thay đổi kích thước phù hợp với bạn.

21 Tinh March 8, 2010 at 10:24 pm

Cách tự động cũng hay nhưng bản thân mình thích làm manually hơn, đẹp và dễ dàng hơn, Thesis đã có sẵn tính năng này, nếu không thì dùng autothumbnail cũng được. Cám ơn bác đã có thêm tut nhé

Reply

22 Huỳnh Trung March 13, 2010 at 3:54 pm

Đồng ý với bác là thủ công vẫn hơn, Bỏ công viết bài, chỉ mỗi việc này cũng không làm nổi nữa sao :) Chức năng này của Thesis bên HT nó không thực hiện tốt, là nguyên nhân chính gây ra vấn đề load trang chủ cực chậm mà trước đây Minh có nhắc nên HT đã không dùng nó rồi. Vả lại nó dùng timthumb nên không bằng phpThumb (hổ trợ PNG)

Reply

23 cua cuon March 9, 2010 at 3:23 pm

Dạo nì ít thấy hư trúc viết bài nhỉ :chem:

Reply

24 Huỳnh Trung March 13, 2010 at 3:56 pm

Cám ơn bạn đã quan tâm, dạo này HT bận quá nên không ra net được, các cmt cũng gần tuần, nay mới trả lời được :) Bạn nói vậy chắc bạn cũng thường xuyên vào HT nhỉ, nay mới lưu lại “dấu vết” à :)

Reply

25 Hùng March 10, 2010 at 1:56 am

Bác chỉ Tut add Google Buzz,retweet vô bài viết luôn đi.
Thanks

Reply

26 Huỳnh Trung March 13, 2010 at 3:58 pm

Dạo này bác ẩn cư à, không thấy bác sang chơi. Cái này đã có nhiều bài hướng dẫn rồi mà, để hai hôm nữa đi về HT viết một bài về việc thêm G Buzz luôn :)

Reply

27 mèo Tom March 11, 2010 at 5:08 pm

:D tớ chỉ dùng plugin cho nó gọn, lâu quá ko thấy pác ghé nhà :chem:

Reply

28 Huỳnh Trung March 13, 2010 at 4:00 pm

HT vẫn thường vào ấy chứ nhưng chỉ đọc bài thôi không dám bình luận, chẳng biết gì về SEO không dám chém :D

Reply

29 mèo Tom March 13, 2010 at 10:32 pm

:chem: chém pác này! ko comment này :nadan:
mèo Tom´s last blog ..Đồng nhất Google Analytics cho Facebook Fan Pages My ComLuv Profile

Reply

30 vitvn.net March 13, 2010 at 3:49 am

huhu.ai tim ho em cai plugin post youtube giống trong mấy cái 4rum với,em tìm mãi ko ra,cài 3 cái plugins khác nhưng lúc nổ lúc xịt ko à.hix

Reply

31 Huỳnh Trung March 13, 2010 at 4:14 pm

Viết cái shortcode là được thôi mà :)

Reply

32 LeHienTinh March 28, 2010 at 8:33 pm

là cái này phải không bác, sao em làm rồi mà khi post ảnh em không biết bỏ vào đâu, hình như cũng add vào Post Image của phần viết bài phải không bác. :bi:

Reply

33 vinhkhac March 29, 2010 at 12:08 am

Hiện em đã chạy được nó, nhưng vấn đề tiếp theo là chỉ hiển thị được ảnh trên host, còn link ngoài thì không thể, lấy ảnh đầu tiên trong bài hình như cũng không được, với lại em không bỏ được cái ảnh thumb mặc định được, khi nào bác online chỉ anh em một lượt luôn nha bác.

Reply

34 Huỳnh Trung March 29, 2010 at 11:51 am

Ảnh host ngoài thì dùng custom field out_image, lấy ảnh đầu tiên trong bài không được, để HT xem lại thử, bỏ thumb mặc định thì có thể can thiệp trực tiếp code của thesis là nhanh gọn nhất :)

Reply

35 Huỳnh Trung March 29, 2010 at 11:47 am

Uhm

Reply

Leave a Comment

CommentLuv Enabled
:cuoiduyen: :2: :$$$: :potoanthan: :heya: :bi: :bimat: :nangly: :D :-O :chem: more »

Previous post:

Next post: