Cách nhan nhất để thêm code hiển thị bài viết liên quan trong WordPress

Bài viết này vừa được chỉnh sửa lúc: 26/06/2018
Rate this post

Như bạn thường thấy dưới chi tiết một bài viết thường có thêm mục “Bài viết liên quan / Bài viết cùng chuyên mục” bài viết được lấy cùng  “category” hay chuyên mục bài viết đó. Hiện tại có rất nhiều plugin hỗ trợ bạn giải quyết vấn đề này, nhưng ở khía cạnh nào đò nó không làm thỏa mãn bạn, bạn muốn tự tay xử lý vấn đề đấy. Thì ngay trong bài viết này IZ4Web sẽ hướng dẫn bạn cách thêm đoạn code hiển thị bài viết liên quan cực kỳ đơn giản mà hiệu quả này.

Code hiển thị bài viết liên quan trong WordPress

1. Lấy bài viết liên quan theo chuyên mục

<?php
    $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), //Bỏ qua bài viết hiện tại
        'posts_per_page' =>5, // Số bài viết bạn muốn hiển thị.
        'caller_get_posts'=>1,
        'no_found_rows'   =>true //Bỏ qua load phân trang tăng hiệu suât query
        );
        $my_query = new wp_query($args);
        if( $my_query->have_posts() ) 
        {
            echo '<h3>Bài viết liên quan</h3><ul class="list-news">';
            while ($my_query->have_posts())
            {
                $my_query->the_post();
                ?>
                <li>
                	<div class="new-img"><a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(array(85, 75)); ?></a></div>
                	<div class="item-list">
                		<h4><a href="<?php the_permalink() ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></h4>
                		<?php the_excerpt(); ?>
                	</div>
                </li>
                <?php
            }
            echo '</ul>';
        }
    }
?>

2. Lấy bài viết liên quan theo TAGS

<!-- Hiển thị bài viết theo Tag -->
<div id="relatedposttags">    
    <?php
        $tags = wp_get_post_tags($post->ID);
        if ($tags) 
        {
            $tag_ids = array();
            foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;
           // lấy danh sách các tag liên quan
            $args=array(
            'tag__in' => $tag_ids,
            'post__not_in' => array($post->ID), // Loại trừ bài viết hiện tại
            'posts_per_page'=>5, // Số bài viết bạn muốn hiển thị.
            'caller_get_posts'=>1
            );
            $my_query = new wp_query($args);
            if( $my_query->have_posts() ) 
            {
                echo '<h3>Bài viết liên quan</h3><ul>';
                while ($my_query->have_posts()) 
                {
                    $my_query->the_post();
                    ?>
                    <li><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></li>
                    <?php
                }
                echo '</ul>';
            }
        }
    ?>
</div>

3. Lấy bài viết liên quan theo Custom Taxonomy

<!-- begin custom related loop, iz4web -->
 
<?php 
 
// get the custom post type's taxonomy terms
 
$custom_taxterms = wp_get_object_terms( $post->ID, 'your_taxonomy', array('fields' => 'ids') );
// arguments
$args = array(
'post_type' => 'your_custom_post_type',
'post_status' => 'publish',
'posts_per_page' => 3, // you may edit this number
'orderby' => 'rand',
'tax_query' => array(
    array(
        'taxonomy' => 'your_taxonomy',
        'field' => 'id',
        'terms' => $custom_taxterms
    )
),
'post__not_in' => array ($post->ID),
);
$related_items = new WP_Query( $args );
// loop over query
if ($related_items->have_posts()) :
echo '<ul>';
while ( $related_items->have_posts() ) : $related_items->the_post();
?>
    <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php
endwhile;
echo '</ul>';
endif;
// Reset Post Data
wp_reset_postdata();
?>
 
 
<!-- end custom related loop, iz4web -->

4. Sử dụng “get_previous_post()  / get_next_post()” lấy bài viết liên quan :))

  • get_previous_post() : Truy xuất bài đăng trước đó liền kề với bài đăng hiện tại.
  • get_next_post(): Truy xuất bài đăng trước đó liền kề với bài đăng hiện tại.
<?php
                    $prev_post = get_previous_post(); 
                    $next_post = get_next_post();
                    if (is_object( $prev_post)) { //Kiểm tra đối tượng $prev_post (Hiểu nôm na là trước bài viết hiện tại còn bài viết nào không)
                        $prevID = $prev_post->ID ;
                    }else{
                        $prevID = '';
                    }
                    if (is_object($next_post)) { //Kiểm tra đối tượng $next_post (Hiểu nôm na là trước bài viết hiện tại còn bài viết nào không)
                        $nextID = $next_post->ID ;
                    }else{
                        $nextID = '';
                    }
                 ?>
                <div class="container">
                        <?php if (!empty($prevID)) { ?>
                            <nav class="g-detail-previous">
                                <div class="img">
                                    <div class="title-px textnp">
                                        <p class="icon-long-right"><i class="fa fa-long-arrow-left"></i></p>
                                         <a href="<?php echo get_permalink($prevID); ?>" title="<?php echo get_the_title($prevID); ?>">
                                            PREVIOUS POST
                                        </a>
                                    </div>
                                    <div class="img-black">
                                        <a href="<?php echo get_permalink($prevID); ?>" title="<?php echo get_the_title($prevID); ?>">
                                            <?php echo get_the_post_thumbnail($prevID); ?></a>
                                    </div>
                                    <p class="title-desc">
                                        <?php echo get_the_title($prevID); ?>
                                    </p>
                                </div>
                            </nav>
                        <?php } ?>
                        <?php if (!empty($nextID)) { ?>
                            <nav class="g-detail-next">
                                <div class="img">
                                    <div class="title-px textnp">
                                        <p class="icon-long-right"><i class="fa fa-long-arrow-right"></i></p>
                                        <a href="<?php echo get_permalink($nextID); ?>" title="<?php echo get_the_title($nextID); ?>">
                                            NEXT POST
                                        </a>

                                    </div>
                                    <div class="img-black">
                                         <a href="<?php echo get_permalink($nextID); ?>" title="<?php echo get_the_title($nextID); ?>">
                                            <?php echo get_the_post_thumbnail($nextID); ?></a>
                                    </div>
                                     <p class="title-desc">
                                          <?php echo get_the_title($nextID); ?>
                                     </p>
                                </div>
                            </nav>
                        <?php } ?>
                </div>

 

Còn rất nhiều bài về các thủ thuật wordpress bạn có thể tham khảo tại đây

Chúc bạn thành công!

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments

IZ4WEB.COM - Trang chia sẻ theme / Plugin WordPress từ themeforest chia sẻ hoàn toàn miễn phí link download được gắn đến Google Drive, nếu ko tìm thấy Plugin – Theme mong muốn vui lòng liên hệ qua Form hỗ trợ hoặc qua mail iz4webteams@gmail.com or 0964.555.805 để chúng tôi sẽ gửi cho bạn ngay phiên bản mới nhất qua thông tin nhận được.

Team có vài lưu ý:

  • Vì chia sẻ miễn phí các bạn đừng hỏi license, team vẫn hỗ trợ update
  • Cơ bản các theme đều import được demo, đọc kĩ tài liệu hướng dẫn của Theme
  • Team sẽ không cam kết chất lượng code Theme vì mình không phải người làm ra theme đấy
  • Nếu các bạn thấy theme có vấn đề vui lòng phản hồi lại Admin để update

Để anh/em có động lực làm việc mọi người có thể donate 1 phần nhỏ tiền trà thuốc để có động lực chiến đấu... Thay mặt Team chân thành cảm ơn!

Chủ TK: Lý Mạnh Hưng



Ngoài ra chúng tôi còn cung cấp các dịch vụ Thiết Kế Website, Cài đặt cấu hình website theo yêu cầu, Dịch vụ SEO, Design & Media, Dịch vụ quảng cáo...

0
Would love your thoughts, please comment.x
()
x