Lấy ảnh đầu tiên trong bài viết làm ảnh đại diện trong wordpress

Thảo luận trong 'Mã nguồn mở Wordpress' bắt đầu bởi admin, 10/3/18.

  1. admin

    admin Phạm Công Sơn Thành viên BQT

    Tham gia ngày:
    22/5/13
    Bài viết:
    4,241
    Đã được thích:
    944
    Điểm thành tích:
    113
    Giới tính:
    Nam
    Mặc định của wordpress nếu không cài ảnh đại diện sẽ hiển khung ảnh trống hoặc không hiển thị gì ngoài trang web của bạn, việc hiển thị này làm cho web nhìn rất xấu và kém chuyên nghiệp. Ngoài ra không hiển thị ảnh sẽ làm web bị bể và hiển thị các lỗi rất khó xem, hôm nay mình hướng dẫn các bạn code tự động kiểm tra nếu không có ảnh đại điện, ảnh thumbnail sẽ tự lấy tấm ảnh đầu tiên trong bài viết làm ảnh đại diện cho web.

    Demo không up ảnh đại diện, wordpress tự động lấy ảnh đầu tiên trong bài viết làm ảnh đại diện.

    tu-dong-lay-anh-bai-viet-lam-anh-dai-dien-wordpress.jpg

    Cách làm:
    • Mở tập tin functions.php themes của bạn ở đường dẫn: wp-content/themes/themes_cua_ban/functions.php. Bằng Notepad++ hoặc WordPad. chèn đoạn code dưới chuỗi <?php
    Mã:
    function get_first_image() {
        global $post, $posts;
        $first_img = '';
        ob_start();
        ob_end_clean();
        $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
        $first_img = $matches[1][0];
         //kiem tra xem co ton tai ko?
        if(empty($first_img)) {
            $first_img = "/path/to/default.png";
        }
        return $first_img;
    }
    
    • Tiếp theo bạn mở vị trí muốn lấy hình đầu tiên trong bài viết làm ảnh bìa để chèn đoạn code sau vào trong themes của bạn, vì mỗi themes cấu hình hiển thị 1 cách khác nhau nên mình không chỉ vị trí chèn được:
    Mã:
    <?php if ( has_post_thumbnail() ) {
        the_post_thumbnail();
    }else { ?>
        <img src="<?php echo get_first_image(); ?>" alt="<?php the_title(); ?>" />
    <?php } ?>
    
    Kinh nghiệm: mình thường tìm với từ khóa the_post_thumbnail(); trong themes của mình và đổi code trên với the_post_thumbnail(); này.
     
    Cảm ơn đã xem bài:

    Lấy ảnh đầu tiên trong bài viết làm ảnh đại diện trong wordpress

    danh sách diễn đàn rao vặt gov chất lượng
    Linh-VNPT thích bài này.
  2. Võ khắc Hạnh

    Võ khắc Hạnh

    Vip Member

    Tham gia ngày:
    1/11/17
    Bài viết:
    279
    Đã được thích:
    3
    Điểm thành tích:
    18
    Chuẩn rồi, trước mình tìm cái này mãi có web mình mà không được. Vì bình thường chèn ảnh đại diện vào thì xấu. không chèn thì danh sách các bài viết không có hình luôn!
     
  3. Linh-VNPT

    Linh-VNPT Thành Viên Mới

    Tham gia ngày:
    14/8/18
    Bài viết:
    11
    Đã được thích:
    0
    Điểm thành tích:
    1
    Giới tính:
    Nữ
    hôm nay có dịp đọc và đã biết, thanks chủ thớt nhiều nhé ;)
     
  4. xvietsao

    xvietsao

    Vip Member

    Tham gia ngày:
    21/8/15
    Bài viết:
    83
    Đã được thích:
    1
    Điểm thành tích:
    8
    Giới tính:
    Nam
    Có code nào lấy ảnh đầu tiên, so sánh với csdl và get thumnail nếu có ra ko hả ad?
     
  5. baohotoandien

    baohotoandien

    Vip Member

    Tham gia ngày:
    21/6/18
    Bài viết:
    59
    Đã được thích:
    3
    Điểm thành tích:
    8
    cám ơn bạn đã chia sẻ nhưng mình thấy Wordpress của mình tự động lấy hình trong bài làm hình nền nên cứ tưởng mặc định nó là vậy rồi chứ.
     
  6. seolagi

    seolagi

    Vip Member

    Tham gia ngày:
    16/4/14
    Bài viết:
    498
    Đã được thích:
    29
    Điểm thành tích:
    28
    Cái code đó có hết rùi ý em, nó có so sánh nếu có ảnh thumnail thì nó lấy thumnail còn không có ảnh thì nó lấy ảnh đầu tiên của bài viết, còn ảnh đầu tiên không có nó lấy ảnh null ý bạn. Code khá hay
     
  7. xvietsao

    xvietsao

    Vip Member

    Tham gia ngày:
    21/8/15
    Bài viết:
    83
    Đã được thích:
    1
    Điểm thành tích:
    8
    Giới tính:
    Nam
    Bác cho em xin code với. cái trên em đã thấy có đâu ạ. cái trên chỉ lấy ở bài viết ra thôi mà.
     
  8. Maichi

    Maichi Thành Viên Mới

    Tham gia ngày:
    5/10/18
    Bài viết:
    30
    Đã được thích:
    0
    Điểm thành tích:
    6
    Giới tính:
    Nữ
    cũng tính lấy ảnh đó làm đại diện
     
  9. huyhung

    huyhung

    Vip Member

    Tham gia ngày:
    19/6/16
    Bài viết:
    64
    Đã được thích:
    0
    Điểm thành tích:
    6
    Giới tính:
    Nam
    - Ảnh trong bài viết mình thường để kích thước ngẫu nhiên. Mà ảnh đại diện các bài viết thì phải có kích thước giống nhau nên mình toàn phải chọn ảnh đại diện riêng. Chỉnh sửa cho về cùng 1 size.
    - Cách này của admin không áp dụng được cho mình rồi. Có cách nào để nó tự điều chỉnh cái ảnh đầu tiền về size như mình muốn không nhỉ.
     


Like và Share ủng hộ ITSEOVN