Danh sách bài đăng liên quan theo tag

Tạo danh sách bài viết liên quan trong WordPress

Danh sách bài viết liên quan có một vai trò cực kì quan trọng trong việc làm seo, thế nên việc đầu tư 😛 làm một danh sách bài viết liên quan là việc làm cấp thiết nếu bạn chưa có, ngoài ra, danh sách bài viết liên quan còn giúp cho việc hòa trộn nội dung trong website được tốt hơn, người đọc cũng thuận tiện hơn trong việc theo dõi dòng sự kiện, hoặc nhóm tin tức.

Danh sách bài đăng liên quan theo tag
Danh sách bài đăng liên quan theo tag

Okey, việc thiết lập một danh sách các bài đăng liên quan không quá khó như bạn nghĩ với WordPress, giờ là chúng ta có 3 sự lựa chọn để hiển thị danh sách bài viết liên quan này:

1. Hiển thị bài đăng liên quan theo tag

2. Hiển thị bài đăng liên quan theo Category

3. Random, cứ hiển thị đã.

Trước hết, bạn mở file single.php ra, file này WordPress dùng để hiển thị bài đăng như các bạn đang đọc đây :p, giờ tìm xuống dưới chỗ thẻ div chứa nội dung bài viết, ví dụ như thẻ class Article chẳng hạn, mà nói chung để chỗ nào cũng được miễn là hợp lý, giờ ta dùng code sau:

        // show bài liên quan ...
        $tag = wp_get_post_tags( get_the_ID() );
        if ( $tag )
            echo '<div class="relate-title">'. get_the_tag_list('<div itemprop="keywords">Bài viết khác cùng tag ', ' ', '</div>') .'</div>';
        $t = $tag[0];
            if ($t) {
                $r = new WP_Query(array('posts_per_page'=> 8, 'post__not_in'=> array( get_the_ID() ), 'tag'=> $t->slug ));
                echo '<ol class="show-more-post">';
                while ( $r->have_posts()): $r->the_post();
                    echo '<li><a href="'.get_permalink().'">'.get_the_title().'</a> <span> - '.get_the_date('d-m-Y H:m').'</span></li>';
                endwhile;
                echo '</ol>';
                wp_reset_postdata();
            }

Đây là code của Jamviet.com ở trong file single.php, các bạn có thể tự trang trí cho đẹp hơn, ngoài ra nếu các bạn muốn hiển thị bài đăng theo cùng category thì chỉnh lại như sau:

$tag = get_the_category( get_the_ID() );
        if ( $tag )
            echo '<div class="relate-title">Bài đăng cùng chuyên mục:</div>';
        $t = $tag[0];
if ($t) {
    $r = new WP_Query(array('posts_per_page'=> 8, 'post__not_in'=> array( get_the_ID() ), 'category_name'=> $t->slug ));
    echo '<ol class="show-more-post">';
    while ( $r->have_posts()): $r->the_post();
        echo '<li><a href="'.get_permalink().'">'.get_the_title().'</a> <span> - '.get_the_date('d-m-Y H:m').'</span></li>';
    endwhile;
    echo '</ol>';
    wp_reset_postdata();
}

Các bạn cũng có thể tham khảo class này của WordPress để có thể tùy chỉnh bất cứ thứ gì theo ý của bạn: http://codex.wordpress.org/Class_Reference/WP_Query

Nếu các bạn muốn cho ảnh đại diện vào bài đăng liên quan thì có thể dùng hàm của WordPress là get_the_post_thumbnail để hiển thị nhé !

Bất cứ thắc mắc nào các bạn có thể comment bên dưới, mọi câu trả lời đều bắt đầu từ những câu hỏi 😛

Chúc cả nhà thành công !

TÁC GIẢ:

Tôi là Jam, thâm niên 7 năm thiết kế website và làm SEO. Hãy theo dõi blog của tôi để nhận được nhiều chia sẻ thú vị xung quanh chủ đề công nghệ.

Có 2 bình luận !

  1. cho mình hỏi nếu muốn hiển thị bài viết liên quan theo category nhưng trình bay dưới dạng bảng ( table ) thì làm thế nào ? bảng 2 cột ấy , 1 cột là bài đăng cùng chuyên mục , một cột là ngày đăng.

    1. Thực tình nếu bạn không thành thạo sử dụng vòng lặp, trong WordPress là vòng lặp while () thì bạn làm điều này là khó, còn hướng dẫn thì nó không ra tấm ra món 😀
      Okey: Bạn làm thế này thì tiện hơn, vì Google khó index theo bảng nên bạn có thể dùng thẻ

    2. là thẻ sắp xếp để làm việc này, ngoài ra để hiển thị ngày tháng thì bạn dùng hàm get_the_modified_date() trong WordPress nhé !
      Chúc bạn thành công !

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *