Hướng dẫn dùng thumbnail example trong PHP

Trang 1 của 2 trang 1 2 Tiếp >

  1. Nhiều bạn thắc mắc và đặt câu hỏi làm thế nào để tự động tạo ra thumbnail từ bài viết. Đặc biệt là các bạn không tự biên soạn bài mà sử dụng các Robot tự động đăng bài như RobotVN chẳng hạn. Bài viết hôm nay sẽ giúp các bạn giải quyết vấn đề này bằng cách tự động tạo ra một thumbnail từ nội dung bài viết.

    Phương án giải quyết vấn đề.

    Mình sử dụng một function đã được chia sẻ trước đây và khá nhiều trên Internet nhưng có nâng cấp hơn một tí nhằm tiết kiệm tài nguyên và hoạt động hiệu quả hơn. Căn bản, vấn đề của chúng ta được giải quyết như sau:

    1. Bước 1: tìm kiếm các các Custom Field có tên in_image và out_image, giá trị tương ứng sẽ là các URL đến hình ảnh đã được các bạn khai báo trước đó. Nếu tồn tại sẽ sử dụng hình ảnh này làm thumbnail.
    2. Bước 2: Nếu không có 2 custom field với tên in_image và out_image như đã nói ở trên, kiểm tra và lấy các attachment dạng hình ảnh làm thumbnail.
    3. Bước 3: Nếu không tồn tại attachment như đã nói, tiến hành tìm kiếm các hình ảnh trong nội dung bài và lấy hình ảnh đầu tiên làm thumbnail.
    4. Bước 4: Nếu không tồn tại hình nào, lấy một hình ảnh mặc định làm thumbnail mặc định.
    5. Bước 5: Tiến hành resize hình ảnh để sử dụng làm thumbnail.
    6. Bước 6: Hiển thị thumbnail.

    Với các bước tiến hành như đã nói ở trên chắc chắn không có bài viết nào là không có thumbnail rồi

    Tiến hành:

    Bạn thêm đoạn mã sau vào file functions.php trong thư mục theme của bạn:

    /********************************************************************
    Get image attach
    ********************************************************************/
    function img[$width,$height] {
        global 
    $post;
        
    $custom_field_value get_post_meta[$post->ID'in_image'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 
    'post_title.'" />';
        }
        elseif [
    $custom_field_value_2 == true] {
        print '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 '
    post_title.'" />';
            }
        }
        else {
            
    $img get_template_directory_uri[];
            
    $img_url parse_url[$img,PHP_URL_PATH];
            print 
    'post_title.'" />';
        }
    }
    function img2[
    $width,$height] {
        global 
    $post;
        
    $custom_field_value = get_post_meta[$post->ID, 'in_image', 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 'post_title.'" 
    />';
        }
        elseif [$custom_field_value_2 == true] {
        print '
    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 
    'post_title.'" />';
            }
        }
        else {
            
    $img = get_template_directory_uri[];
            
    $img_url = parse_url[$img,PHP_URL_PATH];
            print 'post_title.'" 
    />';
        }
    }

    Đoạn mã mình cung cấp ở trên sẽ giải quyết từ bước 4 đã nói ở trên. Bạn chú ý hình ảnh no_image.gif là hình ảnh mặc định. Bạn có thể download hình ảnh này bằng cách chọn save as hình mình cung cấp dưới đây.

    .

    Resize hình ảnh theo giao diện:

    Mình sử dụng phpThumb để resize hình ảnh. Bạn download phpThumb ở đây và chép vào thư mục /wp-content/themes/theme_name/phpthumb/. Đoạn mã mình thêm vào file functions.php sẽ tự động gọi phpThumb để tạo thumbnail.

    Hiển thị thumbnail

    Tại vị trí cần hiện thumbnail bạn gọi hàm sau với x và y là 2 giá trị dạng số qui định chiều rộng[x] và chiều cao [y] của thumbnail. Bạn chú ý :

Chủ Đề