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.'&w='.$width.'&h='.$height.'&zc=T&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.'&w='.$width.'&h='.$height.'&zc=T&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.'&w='.$width.'&h='.$height.'&zc=T&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&w='.$width.'&h='.$height.'&zc=T&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 }
{ 35 comments… read them below or add one }
Quá hay, quá hay. Mình đã cần cái này lâu lắm rồi. thanks hutruc nhiều nhé.
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
Bên trong thư mục custom của thesis, bên trên có ghi mà
À rồi rồi, tỏi quên k xem code. hihi. THanks hutruc 1 lần nữa
K đc hu truc ơi, híc, oải thế, tỏi dùng bloggusion ấy, nhưng k đc
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 ?
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
Blog của bác ấy nhiều khi HT vào cũng chẳng được
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é
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 ý.
Không có gì
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.
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é.
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.
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
Plugin loại này HT cũng không thường dùng nên không rành lắm.
chả nẽ ko ai bít ạ,hộ em với,mất hết khách truy cập rùi.huhu
Dùng thử cái này: http://htr-wpplugins.googlecode.com/files/htr-youtube.zip
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 ý
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.
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é
Đồ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)
Dạo nì ít thấy hư trúc viết bài nhỉ
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” à
Bác chỉ Tut add Google Buzz,retweet vô bài viết luôn đi.
Thanks
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
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
mèo Tom´s last blog ..Đồng nhất Google Analytics cho Facebook Fan Pages
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
Viết cái shortcode là được thôi mà
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.
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.
Ả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
Uhm