• Downloading from our site will require you to have a paid membership. Upgrade to a Premium Membership from 10$ a month today!

    Dont forget read our Rules! Also anyone caught Sharing this content will be banned. By using this site you are agreeing to our rules so read them. Saying I did not know is simply not an excuse! You have been warned.

Hiển thị các bài liên quan trong wordpress không dùng plugin

Admin

Well-Known Member
Staff member
Administrator
Nếu theo dõi các bài của mình thì có thể các bạn đã làm được một số việc quan trọng rồi đúng k nào, chẳng hạn thiết kế được theme wordpress đơn giản với các tính năng đơn giản. hì… Hôm nay chúng ta sẽ làm mở rộng hơn một tí đó là hiển thị các bài viết liên quan trong WordPress

Bạn có thể sử dụng plugin để làm vấn đề này không sao cả tuy nhiên chủ đề mình là thiết kế theme nên chúng ta sẽ dùng các không xài plugin mà tự code vào.

Đầu tiên chúng ta cần xác định các bài post liên quan chỉ hiển thị ở trang chi tiết bài post hay nói cách khác đó là file single.php của chúng ta. Do chỉ hiển thị ở 1 trang duy nhất nên ta code trên đây lun khỏi viết hàm cho khổ. hì…

Hôm nay mình giới thiệu với các bạn hai cách hiển thị các bài viết liên quan trong wordpress đó là hiển thị theo từ khóa (tags) và hiển thị theo thể loại (categories).

Hiển thị bài viết liên quan theo tags

Bạn vào trong file single.php, thông thường là sẽ ở dưới cùng sau khi kết thúc nội dung bài viết chúng ta sẽ đặt các bài viết liên quan tại đây. Bạn copy đoạn code sau vào.

Code:
[COLOR=#000000][FONT=monospace]<div id="relatedpost"> [/FONT][/COLOR]
[COLOR=#0000BB][FONT=monospace]<?php 
        $tags [/FONT][/COLOR][COLOR=#007700][FONT=monospace]= [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]wp_get_post_tags[/FONT][/COLOR][COLOR=#007700][FONT=monospace]([/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$post[/FONT][/COLOR][COLOR=#007700][FONT=monospace]->[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]ID[/FONT][/COLOR][COLOR=#007700][FONT=monospace]); 
        if ([/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$tags[/FONT][/COLOR][COLOR=#007700][FONT=monospace]) 
        { 
            [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$tag_ids [/FONT][/COLOR][COLOR=#007700][FONT=monospace]= array(); 
            foreach([/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$tags [/FONT][/COLOR][COLOR=#007700][FONT=monospace]as [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$individual_tag[/FONT][/COLOR][COLOR=#007700][FONT=monospace]) [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$tag_ids[/FONT][/COLOR][COLOR=#007700][FONT=monospace][] = [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$individual_tag[/FONT][/COLOR][COLOR=#007700][FONT=monospace]->[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]term_id[/FONT][/COLOR][COLOR=#007700][FONT=monospace]; 
  
            [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$args[/FONT][/COLOR][COLOR=#007700][FONT=monospace]=array( 
            [/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]'tag__in' [/FONT][/COLOR][COLOR=#007700][FONT=monospace]=> [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$tag_ids[/FONT][/COLOR][COLOR=#007700][FONT=monospace], 
            [/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]'post__not_in' [/FONT][/COLOR][COLOR=#007700][FONT=monospace]=> array([/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$post[/FONT][/COLOR][COLOR=#007700][FONT=monospace]->[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]ID[/FONT][/COLOR][COLOR=#007700][FONT=monospace]), 
            [/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]'showposts'[/FONT][/COLOR][COLOR=#007700][FONT=monospace]=>[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]5[/FONT][/COLOR][COLOR=#007700][FONT=monospace], [/FONT][/COLOR][COLOR=#FF8000][FONT=monospace]// Số bài viết bạn muốn hiển thị. 
            [/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]'caller_get_posts'[/FONT][/COLOR][COLOR=#007700][FONT=monospace]=>[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]1 
            [/FONT][/COLOR][COLOR=#007700][FONT=monospace]); 
            [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$my_query [/FONT][/COLOR][COLOR=#007700][FONT=monospace]= new [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]wp_query[/FONT][/COLOR][COLOR=#007700][FONT=monospace]([/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$args[/FONT][/COLOR][COLOR=#007700][FONT=monospace]); 
            if( [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$my_query[/FONT][/COLOR][COLOR=#007700][FONT=monospace]->[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]have_posts[/FONT][/COLOR][COLOR=#007700][FONT=monospace]() ) 
            { 
                echo [/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]'<h3>Bài viết liên quan</h3><ul>'[/FONT][/COLOR][COLOR=#007700][FONT=monospace]; 
                while ([/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$my_query[/FONT][/COLOR][COLOR=#007700][FONT=monospace]->[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]have_posts[/FONT][/COLOR][COLOR=#007700][FONT=monospace]()) 
                { 
                    [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$my_query[/FONT][/COLOR][COLOR=#007700][FONT=monospace]->[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]the_post[/FONT][/COLOR][COLOR=#007700][FONT=monospace](); 
                    [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]?> 
[/FONT][/COLOR][COLOR=#000000][FONT=monospace]                    <li><a href="[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]<?php the_permalink[/FONT][/COLOR][COLOR=#007700][FONT=monospace]() [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]?>[/FONT][/COLOR][COLOR=#000000][FONT=monospace]" title="[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]<?php the_title[/FONT][/COLOR][COLOR=#007700][FONT=monospace](); [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]?>[/FONT][/COLOR][COLOR=#000000][FONT=monospace]">[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]<?php the_title[/FONT][/COLOR][COLOR=#007700][FONT=monospace](); [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]?>[/FONT][/COLOR][COLOR=#000000][FONT=monospace]</a></li> [/FONT][/COLOR]
[COLOR=#0000BB][FONT=monospace]<?php 
                [/FONT][/COLOR][COLOR=#007700][FONT=monospace]} 
                echo [/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]'</ul>'[/FONT][/COLOR][COLOR=#007700][FONT=monospace]; 
            } 
        } 
    [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]?> 
[/FONT][/COLOR][COLOR=#000000][FONT=monospace]</div>[/FONT][/COLOR]

Cách này sẽ cho phép hiển thị các bài có cung tag, bạn có thể thay đổi số lượng bài hiển thị tại nơi mình chú thích.

Hiển thị bài viết liên quan theo Categories

Tương tự như trên chỉ cần thay đổi một ít là dc! Bạn đổi đoạn code trên thay bằng đoạn code dưới đây.

Code:
[COLOR=#000000][FONT=monospace]<!-- [/FONT][/COLOR]
[COLOR=#0000BB][FONT=monospace]<?php 
    $categories [/FONT][/COLOR][COLOR=#007700][FONT=monospace]= [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]get_the_category[/FONT][/COLOR][COLOR=#007700][FONT=monospace]([/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$post[/FONT][/COLOR][COLOR=#007700][FONT=monospace]->[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]ID[/FONT][/COLOR][COLOR=#007700][FONT=monospace]); 
    if ([/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$categories[/FONT][/COLOR][COLOR=#007700][FONT=monospace]) 
    { 
        [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$category_ids [/FONT][/COLOR][COLOR=#007700][FONT=monospace]= array(); 
        foreach([/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$categories [/FONT][/COLOR][COLOR=#007700][FONT=monospace]as [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$individual_category[/FONT][/COLOR][COLOR=#007700][FONT=monospace]) [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$category_ids[/FONT][/COLOR][COLOR=#007700][FONT=monospace][] = [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$individual_category[/FONT][/COLOR][COLOR=#007700][FONT=monospace]->[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]term_id[/FONT][/COLOR][COLOR=#007700][FONT=monospace]; 
  
        [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$args[/FONT][/COLOR][COLOR=#007700][FONT=monospace]=array( 
        [/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]'category__in' [/FONT][/COLOR][COLOR=#007700][FONT=monospace]=> [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$category_ids[/FONT][/COLOR][COLOR=#007700][FONT=monospace], 
        [/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]'post__not_in' [/FONT][/COLOR][COLOR=#007700][FONT=monospace]=> array([/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$post[/FONT][/COLOR][COLOR=#007700][FONT=monospace]->[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]ID[/FONT][/COLOR][COLOR=#007700][FONT=monospace]), 
        [/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]'showposts'[/FONT][/COLOR][COLOR=#007700][FONT=monospace]=>[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]5[/FONT][/COLOR][COLOR=#007700][FONT=monospace], [/FONT][/COLOR][COLOR=#FF8000][FONT=monospace]// Số bài viết bạn muốn hiển thị. 
        [/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]'caller_get_posts'[/FONT][/COLOR][COLOR=#007700][FONT=monospace]=>[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]1 
        [/FONT][/COLOR][COLOR=#007700][FONT=monospace]); 
        [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$my_query [/FONT][/COLOR][COLOR=#007700][FONT=monospace]= new [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]wp_query[/FONT][/COLOR][COLOR=#007700][FONT=monospace]([/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$args[/FONT][/COLOR][COLOR=#007700][FONT=monospace]); 
        if( [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$my_query[/FONT][/COLOR][COLOR=#007700][FONT=monospace]->[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]have_posts[/FONT][/COLOR][COLOR=#007700][FONT=monospace]() ) 
        { 
            echo [/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]'<h3>Bài viết liên quan</h3><ul>'[/FONT][/COLOR][COLOR=#007700][FONT=monospace]; 
            while ([/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$my_query[/FONT][/COLOR][COLOR=#007700][FONT=monospace]->[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]have_posts[/FONT][/COLOR][COLOR=#007700][FONT=monospace]()) 
            { 
                [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$my_query[/FONT][/COLOR][COLOR=#007700][FONT=monospace]->[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]the_post[/FONT][/COLOR][COLOR=#007700][FONT=monospace](); 
                [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]?> 
[/FONT][/COLOR][COLOR=#000000][FONT=monospace]                <li><a href="[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]<?php the_permalink[/FONT][/COLOR][COLOR=#007700][FONT=monospace]() [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]?>[/FONT][/COLOR][COLOR=#000000][FONT=monospace]" title="Permanent Link to [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]<?php the_title_attribute[/FONT][/COLOR][COLOR=#007700][FONT=monospace](); [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]?>[/FONT][/COLOR][COLOR=#000000][FONT=monospace]">[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]<?php the_title[/FONT][/COLOR][COLOR=#007700][FONT=monospace](); [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]?>[/FONT][/COLOR][COLOR=#000000][FONT=monospace]</a></li> [/FONT][/COLOR]
[COLOR=#000000][FONT=monospace]                [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]<?php 
            [/FONT][/COLOR][COLOR=#007700][FONT=monospace]} 
            echo [/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]'</ul>'[/FONT][/COLOR][COLOR=#007700][FONT=monospace]; 
        } 
    } 
[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]?> 
[/FONT][/COLOR][COLOR=#000000][FONT=monospace]-->[/FONT][/COLOR]

Sau đó bạn save lại và test. Tùy rằng mới hiển thị giao điện hơi cùi nhưng không sao bạn style lại sẽ đẹp thôi. Dưới đây là bản style lại của mình cũng như kết quả bài hôm nay ta được.

Vậy là xong nha các bạn. lưu ý anh em một điều là khi bị lầm lẫn bài viết với comment không đúng với nhau có nghĩa là comment này phải là bài này mà nó hiển thị ở bài khác, bạn phải reset truy vấn khi hiển thị tin để tránh nhọc nhằn code. Chúc thành công.
 

Facebook Comments

Similar threads

New posts New threads New resources

Back
Top