Bạn có thể hiển thị Related Post (danh sách các bài viết có liên quan) dễ dàng bằng cách sử dụng plugin. Liệu có cách nào khác để hiển thị nó với một thumbnail mà không cần đến plugin hay không? Trong bài viết này, chúng tôi sẽ giới thiệu với bạn hai thuật toán khác nhau để hiển thị related post với thumbnail mà không cần plugin.
Lưu ý: Chúng tôi sẽ sử dụng chức năng WordPress Post Thumbnail.
Hiển thị Related Post theo tag
WordPress có một tính năng phân loại tuyệt vời được gọi là ‘Post Tags‘. Bạn có thể gắn tag mỗi bài viết của bạn với nhiều từ khóa. Thuật toán này sẽ tìm các bài đăng có cùng tag với bài đăng hiện tại và liệt kê chúng.
<?php $orig_post = $post;
global $post;
$tags = wp_get_post_tags($post->ID);
if ($tags) {
$tag_ids = array();
foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;
$args=array(
'tag__in' => $tag_ids,
'post__not_in' => array($post->ID),
'posts_per_page'=>5, // Number of related posts that will be shown.
'ignore_sticky_posts'=>1
);
$my_query = new wp_query( $args );
if( $my_query->have_posts() ) {
echo '<div id="relatedposts"><h3>Related Posts</h3><ul>';
while( $my_query->have_posts() ) {
$my_query->the_post(); ?>
<li><div class="relatedthumb"><a href="<? the_permalink()?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_post_thumbnail(); ?></a></div>
<div class="relatedcontent">
<h3><a href="<? the_permalink()?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></h3>
<?php the_time('M j, Y') ?>
</div>
</li>
<? }
echo '</ul></div>';
}
}
$post = $orig_post;
wp_reset_query(); ?>
Đoạn code trên đang xem ID bài đăng hiện tại và tất cả các tag được liên kết. Đoạn code sử dụng chức năng wp_query để tìm tất cả các bài đăng khác phù hợp với bất kỳ tag gốc nào, sau đó hiển thị chúng. Bạn có thể tạo kiểu cho bài viết theo ý thích của mình.
Ưu điểm
Hầu hết các code trên web không thể được sử dụng trong vòng lặp bài đăng chính. Vì các bài viết liên quan được đặt ngay sau bài đăng chính và phía trên phần bình luận nên code này rất hữu ích.
Chúng tôi đang lưu ID bài đăng hiện tại của vòng lặp chính và sau đó lập lại ở cuối đoạn code bài viết liên quan. Thông thường, nếu bạn không làm theo cách này, hai code ID bài đăng sẽ bị trộn lẫn. Điều này ảnh hướng đến phần hiển thị bình luận và các plugin khác liên quan đến bình luận. Vậy vậy, code này hoạt động khá tốt.
Cách sử dụng
Đặt mã này bất cứ nơi nào bạn thích trong single.php của bạn và nó sẽ hoạt động. Nhưng đa phần, nó thường được đặt ngay phía trên phần bình luận trong vòng lặp chính.
Hiển thị Related Post theo Category
Thuật toán này sẽ tìm các bài đăng khác trong cùng category với bài đăng hiện tại. Các bài đăng sẽ được liệt kê dưới dạng Related Post. Ưu điểm phương pháp này là lúc nào bạn cũng tìm được một bài viết có liên quan.
<?php $orig_post = $post;
global $post;
$categories = get_the_category($post->ID);
if ($categories) {
$category_ids = array();
foreach($categories as $individual_category) $category_ids[] = $individual_category->term_id;
$args=array(
'category__in' => $category_ids,
'post__not_in' => array($post->ID),
'posts_per_page'=> 2, // Number of related posts that will be shown.
'ignore_sticky_posts'=>1
);
$my_query = new wp_query( $args );
if( $my_query->have_posts() ) {
echo '<div id="related_posts"><h3>Related Posts</h3><ul>';
while( $my_query->have_posts() ) {
$my_query->the_post();?>
<li><div class="relatedthumb"><a href="<? the_permalink()?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_post_thumbnail(); ?></a></div>
<div class="relatedcontent">
<h3><a href="<? the_permalink()?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></h3>
<?php the_time('M j, Y') ?>
</div>
</li>
<?
}
echo '</ul></div>';
}
}
$post = $orig_post;
wp_reset_query(); ?>
Kỹ thuật này sử dụng các chức năng tương tự như ở trên, ngoại trừ chúng tôi chỉ sử dụng các tiêu chí khác nhau.
Nếu bạn đang tạo một dự án mới hoặc làm việc trên trang web của khách hàng, hướng dẫn này có thể rất hữu ích.
Ví dụ:
Nếu bạn thích bài viết này, vui lòng đăng ký YouTube Channel của chúng tôi để xem thêm các hướng dẫn về WordPress. Bạn cũng có thể tìm thấy chúng tôi trên Twitter và Facebook.