Hiển thị số lượt xem của bài viết không dùng plugin

Trang chủ Tin tức WORDPRESS Hiển thị số lượt xem của bài viết không dùng plugin

Trong bài viết này, tôi sẽ hướng dẫn bạn cách để hiển thị số lượt xem bài viết bằng cách sử dụng PHP và lưu lượt xem vào DB trong bảng wp_postmeta, mỗi bài viết sẽ có meta_key là ‘post_views_count‘.

Cách hoạt động của nó là mỗi khi bài viết nào đó được load thì dữ liệu đếm lượt xem sẽ tăng lên 1 lần, bắt đầu là từ 0.

Bạn hãy dán code dưới vào file functions.php trong Theme wordpress của bạn, đã có một số hàm được setup sẵn, ngoài ra trong wordpress admin, page hiển thị tất cả bài viết sẽ có cột hiển thị lượt xem tương ứng.

<?php

function getPostViews($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, '0');
    return "0 View";
  }
  return $count;
}

// function to count views.
function setPostViews($postID) {
$count_key = 'post_views_count';
$count = get_post_meta($postID, $count_key, true);
if($count==''){
  $count = 0;
  delete_post_meta($postID, $count_key);
  add_post_meta($postID, $count_key, '0');
}else{
  $count++;
  update_post_meta($postID, $count_key, $count);
  }
}


// Add it to a column in WP-Admin
add_filter('manage_posts_columns', 'posts_column_views');
add_action('manage_posts_custom_column', 'posts_custom_column_views',5,2);

function posts_column_views($defaults){
  $defaults['post_views'] = __('Views');
  return $defaults; 
}
      
function posts_custom_column_views($column_name, $id){
  if($column_name === 'post_views'){
    echo getPostViews(get_the_ID());
  }
}

Đếm lượt xem bài viết và cộng thêm 1

Tiếp theo bạn hãy mở file single.php (file này dùng để hiển thị chi tiết một bài viết bất kỳ) và dán hàm phía dưới vào:

<?php
    setPostViews( get_the_ID() );
?>

Hàm này có nhiệm vụ khởi tạo một post meta cho bài viết đó.

Hãy thử load bài viết và vào Database kiểm tra như hình bạn sẽ thấy nhé

Tìm bằng cách search theo ID của bài viết

Hiển thị lượt xem ra bên ngoài

Cũng trong file single.php, dán code dưới để hiển thị lượt xem

<?php
    echo "Lượt xem: " . getPostViews( get_the_ID() );
?>