พอดีต้องการทำ Postview โดยที่ไม่ใช้ปลั๊กอินครับ โค๊ดจาก indytheme
เลยอยากรู้ว่าโค๊ดตัวนี้เก็ยวติถิไว้ที่ไหน แล้วมีผลทำให้ DB บวม หรือ เว็บช้าลงหรือไม่ครับ
function get_post_views($postid) {
$count_key = 'post_views_count';
$count = get_post_meta($postid, $count_key, true);
if ($count == '') {
delete_post_meta($postid, $count_key);
add_post_meta($postid, $count_key, '1');
return "1";
}
return $count;
}
function set_post_views($postid) {
$count_key = 'post_views_count';
$count = get_post_meta($postid, $count_key, true);
if ($count == '') {
$count = 1;
delete_post_meta($postid, $count_key);
add_post_meta($postid, $count_key, '1');
} else {
$count++;
update_post_meta($postid, $count_key, $count);
}
}
<?php set_post_views(get_the_ID()); ?>
<?php echo get_post_views(get_the_ID()); ?>
https://www.indytheme.com/blog/wordpress-view-counter-article/ เก็บไว้ใน table: wp_postmeta ครับ
ส่วนทำให้ DB บวมไหมจำพวก meta มันมักจะบวมอยู่แล้วครับถ้าเก็บข้อมูลเข้าไปเยอะๆ เช่น 1 โพสต์อาจจะมี 50-100 row(ตัวเลขสมมุติ) ได้ครับ ถ้ามี 10โพสต์ก็คูณต่อเอาครับ
ส่วนถ้าเว็บช้าไหมอยู่ที่การออกแบบครับ ถ้าหากเก็บเข้าแคชมันก็ไม่ค่อยช้าหรอก แต่พวกที่เก็บเป็นสถิติถ้าออกแบบมาไม่ดีมักจะช้าครับ เพราะมีการ Update Row อยู่ตลอดทุกครั้งทีมีการเข้าชมโพสต์