Code tạo list bài viết liên quan trong WordPress

Chắc hẳn các bạn đều nhận thấy rõ tác dụng của danh sách bài viết liên quan (related post) ở cuối mỗi bài viết trên website của mình. Nó giúp cho số lượng pageviews trên webiste chúng ta được tăng lên đáng kể đấy, mà đây là một trong những chi tiết quyết định đến thứ hạng Ranking của blog. Với hầu hết plugins hiện nay đều có thể tạo ra được danh sách này chẳng hạn như: Yet Another Related Post hay nrelate Related Content.

Nhưng khá nhiều bạn thường ko thích sử dụng plugins vì nó ảnh hưởng đến tốc độ của blog. do vậy, Tuấn Anh xin giới thiệu bạn 1 đoạn code mà có thể giúp bạn tạo ra danh sách này mà không nên đến plugins. Đây là đoạn code mình đang áp dụng cho blog của mình.

bai viet lien quan

Các bạn có thể copy đoạn code sau đây vào file functions.php trong theme mà bạn đang sử dụng:

Danh sách bài viết liên quan hiển thị theo category

function get_samepost_category() {
    $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),
                'showposts'=>5,
                'ignore_sticky_posts'=>1,
                'orderby'=>rand);
          $my_query = new wp_query($args);
        endforeach;
        if( $my_query->have_posts() ): 
           if( is_single() ):?>
             <div class="sametitle">Có thể bạn chưa xem</div>
             <div class="same"> 
              <ul>
               <?php while ($my_query->have_posts()): 
                     $my_query->the_post();?>
                     <li>
                       <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a>
                     </li>
               <?php endwhile; ?>
              </ul>
             </div>
 <?php  endif; endif; endif; wp_reset_query(); }

Danh sách bài viết liên quan hiển thị theo tag

function get_samepost_tag() {
        $tags = wp_get_post_tags($post->ID);
        if ($tags):
            $first_tag = $tags[0]->term_id;
            $args = array(
            'tag__in' => array($first_tag),
            'post__not_in' => array($post->ID),
            'showposts' => 5, 
            'ignore_sticky_posts' => 1,
                        'orderby'=>rand);
            $related_query = new WP_Query($args);
            if ($related_query->have_posts()) :
              if( is_single() ):?>
                <div class="sametitle">Các bài viết liên quan</div>
                <div class="same"> 
                <ul>
                <?php while ($related_query->have_posts()): 
                        $related_query->the_post(); ?>
                        <li>
                        <a href=”<?php the_permalink() ?>” > <?php the_title();?> </a>
                        </li>
                <?php endwhile; ?>
                </ul>
                </div>
<?php  endif; endif; endif; wp_reset_query(); }

Tiếp theo đó, bạn mở file single.php và thêm vào đoạn code như sau:

<?php get_samepost_category(); ?>

hoặc

<?php get_samepost_tag(); ?>

vào những vị trí mà bạn muốn hiển thị danh sách bài viết liên quan của bài viết chính trên trang, thông thường là ngay phía sau đoạn code

<?php the_content(); ?>

Đối với những ai sử dụng Theme Genesis, bạn không sử dụng file single.php mà sẽ thêm đoạn code này vào ngay bên phía trên code khi nãy:

add_action( 'genesis_after_post_content', 'get_samepost_category' );

Các bạn có thể tìm đến file style.css, bổ sung thêm các lớp thuộc tính .sametitle.same sao cho phù hợp với website của bạn.
Chúc các bạn thành công!

Bạn đang xem bài viết Code tạo list bài viết liên quan trong WordPress

Add Comment