Tạo Thumbnail WordPress Từ Ảnh Đầu Tiên Trong Post Hoặc Page
Bài này liên quan đến ảnh đại diện cho post và page, nếu ai chưa biết cách đăng ký và gọi ảnh thumbnail ra thì có thể xem tại đây.
Lúc trước tôi có làm một dự án Get post cho 200 site từ một site cung cấp tin chính, ban đầu tôi cho 200 site đó lưu hỉnh ảnh khi Get về nhưng trong quá trình thực hiện dự án này có nhiều bất cập, hình ảnh đôi khi Get về thường xuyên bị lỗi, sau đó tôi chuyển hướng qua một phương án khác là không lưu hình ảnh về mà lấy hình ảnh từ trang chính cung cấp tin, lấy hình ảnh đầu tiên trong bài viết làm thumbnail.
Các bạn thực hiện rất đơn giản, tất cả các code này tôi đã xây dựng sẵn, các bạn chỉ việc làm theo hướng dẫn để đưa dòng code đó vào trong theme của mình thôi.
Đầu tiên các bạn copy đoạn code của tôi và paste vào file functions.php
<?php
function getImage($num)
{
global $more;
$more = 1;
$content = get_the_content();
$count = substr_count($content, '<img');
$start = 0;
for($i=1;$i<=$count;$i++) {
$imgBeg = strpos($content, '<img', $start);
$post = substr($content, $imgBeg);
$imgEnd = strpos($post, '>');
$postOutput = substr($post, 0, $imgEnd+1);
$image[$i] = $postOutput;
$start=$imgEnd+1;
$cleanF = strpos($image[$num],'src="')+5;
$cleanB = strpos($image[$num],'"',$cleanF)-$cleanF;
$imgThumb = substr($image[$num],$cleanF,$cleanB);
}
if(stristr($image[$num],'<img')) { echo $imgThumb; }
$more = 0;
}
?>
Sau đó bạn download file timthumb.php về bỏ vào thư mục theme mà bạn đang dùng nhé, file này có tác dụng cắt ảnh từ một ảnh cho trước.
Bạn download từ đường dẫn này hoặc bạn dùng trực tiếp luôn, để địa chỉ file này thay thế cho địa chỉ trong code tôi đang dùng nhé:
http://timthumb.googlecode.com/svn/trunk/timthumb.php
Sau đó bạn đặt đoạn code này nơi mà bạn muốn hiển thị thumbnail, thông thường thì trong các file như: single.php, category.php, archire.php, page
<div>
<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
<img src="<?php bloginfo('template_directory'); ?>/timthumb.php?src=<?php getImage('1'); ?>&w=150&h=150&zc=1">
</a>
</div>
nếu bạn dùng trực tiếp file này trên google thì đoạn code trên sẽ thành như thế này
<div>
<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
<img src="http://timthumb.googlecode.com/svn/trunk/timthumb.php?src=<?php getImage('1'); ?>&w=150&h=150&zc=1">
</a>
</div>
Các bạn đã làm được chưa?
Chúc các bạn thành công.
Mình cũng rất thích dùng code hơn là plusin.
Lạm dụng plusin khiến tốc độ load của site tăng lên đáng kể
Thanks Mình đang tìm cái này