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

สำหรับบทความนี้มาจากผมได้พัฒนาโปรเจ็คหนึ่งครับ เป็นโปรเจ็คที่ต้องมีการ 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/

เราใช้คุกกี้เพื่อพัฒนาประสิทธิภาพ และประสบการณ์ที่ดีในการใช้เว็บไซต์ของคุณ คุณสามารถศึกษารายละเอียดได้ที่ นโยบายความเป็นส่วนตัว และสามารถจัดการความเป็นส่วนตัวเองได้ของคุณได้เองโดยคลิกที่ ตั้งค่า

Privacy Preferences

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

ยอมรับทั้งหมด
Manage Consent Preferences
  • คุกกี้ที่จำเป็น
    Always Active

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

  • คุกกี้เพื่อการวิเคราะห์

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

  • คุกกี้เพื่อปรับเนื้อหาให้เข้ากับกลุ่มเป้าหมาย

    คุกกี้ประเภทนี้จะเก็บข้อมูลต่าง ๆ รวมทั้งข้อมูลวส่วนบบุคลเกี่ยวกับตัวคุณเพื่อเราสามารถนำมาวิเคราะห์ และนำเสนอเนื้อหา ให้ตรงกับความเหมาะสมกับความสนใจของคุณ ถ้าหากคุณไม่ยินยอมเราจะไม่สามารถนำเสนอเนื้อหาและโฆษณาได้ไม่ตรงกับความสนใจของคุณ

บันทึก