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
    Tham gia ngày:
    22/5/13
    Bài viết:
    4,894
    Đã được thích:
    1,198
    Đ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

    Linh-VNPT thích bài này.
  2. Linh-VNPT
    Tham gia ngày:
    14/8/18
    Bài viết:
    7
    Đã đượ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é ;)
     
  3. xvietsao
    Tham gia ngày:
    21/8/15
    Bài viết:
    43
    Đã được thích:
    0
    Đ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?
     
  4. baohotoandien
    Tham gia ngày:
    21/6/18
    Bài viết:
    44
    Đã đượ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ứ.
     
  5. seolagi
    Tham gia ngày:
    16/4/14
    Bài viết:
    1,028
    Đã được thích:
    80
    Điểm thành tích:
    48
    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
     
  6. xvietsao
    Tham gia ngày:
    21/8/15
    Bài viết:
    43
    Đã được thích:
    0
    Đ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à.
     
  7. Maichi
    Tham gia ngày:
    5/10/18
    Bài viết:
    18
    Đã đượ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
     
  8. huyhung
    Tham gia ngày:
    19/6/16
    Bài viết:
    39
    Đã được thích:
    1
    Điểm thành tích:
    8
    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ỉ.
     
  9. Vũ Thế Hoàng
    Tham gia ngày:
    20/2/20
    Bài viết:
    15
    Đã được thích:
    0
    Điểm thành tích:
    1
    Giới tính:
    Nam
    Mình nghĩ ảnh đại diện khá quan trọng, nó sẽ đẹp hơn các tấm ảnh trong bài viết. Nên lúc nào cũng đặt Featured Image.
     
  10. vvtu2000
    Tham gia ngày:
    17/2/20
    Bài viết:
    17
    Đã được thích:
    0
    Điểm thành tích:
    6
    Giới tính:
    Nam
    e muốn đang làm trên nền tảng khác fsport247.com, e muốn tìm hiểu thêm về wp