28
Aug

แสดงจำนวนคอมเมนต์ของแต่ละหมวดหมู่ใน WordPress

Category: Blog / 320 views

สำหรับบทความนี้มาจากผมได้พัฒนาโปรเจ็คหนึ่งครับ เป็นโปรเจ็คที่ต้องมีการ customize wordpress ค่อนข้างเยอะมากๆ และหนึ่งในนั้นก็คือการแสดงผลว่า ในหมวดหมุ่นี้ มีคนมาคอมเมนต์เท่าไหร่ โดยที่จะเปลี่ยนไปอัตโนมัตเมื่อคลิกไปยังแต่ละหมวดหมู่ ตอนแรกผมก็นั่งคิดขั้นตอนการทำอยู่ครับ ว่าจะสร้างอัลกอริธึมยังไงดีนะ พยายามค้นคว้าหาข้อมูลทั้งวันก็ไม่เจอ หาโน่นหานี่ จนในที่สุดก็คิดออกครับ ฮ่าๆ

อัลกอริธึมที่จะทำสร้างก็คือ อย่างแรกต้องทราบก่อนว่า หมวดหมู่นั้นมีไอดีว่าอะไร?

จากนั้นก็หาวิธีการคิวรี่คอมเมนต์ที่อยู่ในไอดีนั้นครับ พอคิวรี่ได้แล้ว ผมก็เอามาหาจำนวนที่คิวรี่ได้  ในที่สุดก็ได้ตามโค้ดนี้มาครับ

[codesyntax lang=”php”]

<?php
$cat = get_query_var('cat');
$number=0;
// Posts per page setting
$ppp = get_option(''); // either use the WordPress global Posts per page setting or set a custom one like $ppp = 10;
$custom_offset = 0; // If you are dealing with your custom pagination, then you can calculate the value of this offset using a formula

// category (can be a parent category)
$category_parent = $cat;

// lets fetch sub categories of this category and build an array
$categories = get_terms( 'category', array( 'child_of' => $category_parent, 'hide_empty' => false ) );
$category_list =  array( $category_parent );
foreach( $categories as $term ) {
 $category_list[] = (int) $term->term_id;
}

// fetch posts in all those categories
$posts = get_objects_in_term( $category_list, 'category' );

$sql = "SELECT comment_ID, comment_date, comment_content, comment_post_ID
 FROM {$wpdb->comments} WHERE
 comment_post_ID in (".implode(',', $posts).") AND comment_approved = 1
 ORDER by comment_date DESC";

$comments_list = $wpdb->get_results( $sql );
$comment_count=count($comments_list);
if($comment_count<10){
    echo "00".$comment_count;
}
elseif($comment_count<100){
    echo "0".$comment_count;
}
else{
    echo $comment_count;
}
?>

[/codesyntax]

สำหรับโค้ดนี้ไม่ได้เขียนเองทั้งหมดนะครับ พยายามหาใน Google นั่งดัดแปลง เอาโน่นแปะนี่ ลองหลายวิธี จนในที่สุดก็ได้ผลลัพธ์ตามที่ต้องการครับ เลยเอามาแชร์เผื่อใครมีโปรเจ็คแนวๆนี้ ก็นำไปใช้ได้นะครับ

ขอบคุณ References

http://codex.wordpress.org/Class_Reference/wpdb

http://blog.ashfame.com/2011/04/get-comments-category-wordpress/

http://kovshenin.com/2009/recent-comments-by-category-slug/


Phraisohn Siripool is a Graphic Designer and Website Developer. Contact Buksohn for Your Business Endeavours