Home WordpressWordPress cơ bản Hiển thị lượt view của bài viết wordpress

Hiển thị lượt view của bài viết wordpress

by admincp

Trong bài này mình sẽ hướng dẫn bạn theo dõi và hiển thị số lượng views của bài viết. Cơ chế là +1 view khi truy cập chi tiết vào bài viết (single). Có nhiều cách sử lý cộng view khi người dùng xem bài viết. Bạn có thể thiết lập mỗi IP chỉ cộng+1 view trong ngày, có nghĩa nếu cùng IP đó truy cập nhiều lần vào một bài viết thì chỉ tính 1 view của IP đó trong ngày mà thôi, đến ngày xong thì mở lại. Phần này bạn tự code thêm vào plugin.

Đầu tiên chúng ta sử dụng plugin hiển thị view cho post đó là WP-PostViews.

Sau khi tải plugin tạo post view xong, bạn kích hoạt plugin. Rồi vào WP-Admin->settings->postviews để cấu hình thêm hoặc sử dụng mặc định.
wp post views wordpress

Để Cấu hình plugins, bạn vào Settings->PostViews.

Cho phép các biến trong template:
– %VIEW_COUNT%
– %POST_TITLE%
– %POST_DATE%
– %POST_TIME%
– %POST_EXCERPT%
– %POST_CONTENT%
– %POST_URL%

Các tùy chọn hiển thị views cho các page template như Home page, Single Posts, Pages….bạn có thể bỏ hiển thị lượt views của một số trang hoặc giới hạn những user đăng nhập mới thấy hoặc hiển thị thông tin views của bài viết cho mọi người truy cập.

– Thông thường bạn sẽ +1view khi người dùng xem bài viết chi tiết, mở /single.php tìm dòng và thêm đoạn code sau ở phía dưới nó.

if(function_exists('the_views')) { the_views(); } ?>

Chú ý:

  • Bạn cần kiểm tra hàm the_views có tồn tại không, phòng trường hợp bạn disabled plugin sẽ gây lỗi website.
  • Bạn có thể đặt hàm trên vào bất kể nơi đâu bạn muốn track post views.

Hàm the_views() hiển thị lượt views của bài viết hiện tại nhưng chỉ +1 views khi xem bài viết chi tiết.

Plugin này được thiết kế tương thích với WP-PostViews nhưng có tối ưu hơn, cho phép bạn tùy chỉnh chi tiết. Tải plugin Post Views Counter và cài đặt như bình thường.
Sau khi cài đặt xong, bạn tiến hành cấu hình cho plugin Settings->Post Views Counter.
post-views-counter

– Tại đây chúng ta lựa chọn Post Type hỗ trợ hiển thị views, liệt kê tại mục Post Types Count.
Counter Mode: phương thức lấy thông tin post views bằng cách dùng mã PHP trực tiếp hoặc thông qua Javascript. Nếu bạn đang sử dụng các cache plugin trong website thì check vào javascript.

Time Between Counts: thiết lập khoảng thời gian reset lại để đếm lại view cho một user của bài viết đó. Như mình nói ý tưởng ở trên, mặc định sau 24h plugin sẽ mở lại IP cho phép +1 view mới cho bài viết đó.

Reset Data: xóa dữ liệu post views sau thời gian chỉ định, nếu bạn muốn duy trì dữ liệu views của các posts thì để giá trị này =0

Exclude Visitors: loại bỏ hiển thị views trên trang đối với loại user bạn chỉ định. Thậm trí cho phép chọn từng quyền user.
exclude-visitors-post-views
Lưu ý: khi chọn “Selected user roles” bạn cần nhấn Save changes để lưu lại, sau đó mới thấy mục nhập thêm user roles ở phía dưới.

Exclude IPs: bạn có thể giới hạn từ địa chỉ IP truy cập vào web, nhấn vào Add new để khai báo IP mới.

WP-PostViews: nhập dữ liệu posts views đồng bộ từ plugin WP-PostViews.

Deactivation: option cuối cùng, kích hoạt xóa dữ liệu khi deactive plugin. Thường thì bạn không nên, vì khi enabled lại dữ liệu của plugin sẽ mất.

Chuyển sang tab Display, nơi cấu hình hiển thị. Có 2 vị trí hiển thị tự động, tại mục Position chọn:
+’before the content’: view sẽ hiển thị trước nội dung bài viết.
+’after the content’: view sẽ hiển thị sau nội dung bài viết.

Hoặc bạn sẽ chèn mọi trí trong web site sử dụng shortcode, trường hợp này bạn chọn Position=manual.

[post-views]

Đừng quên nhấn save change để lưu lại.
Kết quả:
post-views-counter-example

Mở functions.php và chèn thêm đoạn code dưới đây:

//hiển thị view
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.' Views';
}
//hàm thiết lập 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);
    }
}

– Để theo dõi post view giống như cách trên bạn mở single.php , tìm đoạn:

< ?php while (have_posts()) : the_post(); ?>

và thêm đoạn code sau vào phía dưới:

if(function_exists('setPostViews')){
	setPostViews();	//+1views for post
	getPostViews();	//hiển thị post view
}

Ngoài ra, còn có một phương thức khác, giúp tăng thời gian tải trang vì khi người dùng truy cập vào mỗi bài viết phải ghi vào CSDL gây ra chậm website. Để giải quyết vấn đề này bạn có thể lưu lượt views của posts ở nơi lưu trữ khác, tham khảo bài viết đếm lượt views bài viết trong wordpress sử dụng Firebase.
Chúc bạn thành công!

Hãy cho mình biết suy nghĩ của bạn trong phần bình luận bên dưới bài viết này. Hãy theo dõi kênh chia sẻ kiến thức WordPress của Vinastar trên TwitterFacebook

Liên hệ

Công ty chuyên Thiết kế website uy tín nhất Miền Bắc: http://vinastar.net

Hotline tư vấn: 0989 48 3456

Nguồn: Sưu tầm trên internet

You may also like

Leave a Comment