Trang chủ WordpressWordpress Plugin Đếm lượt xem bài viết khi có cache

Đếm lượt xem bài viết khi có cache

bởi Thạch Phạm

Trong bài viết hướng dẫn làm chức năng đếm lượt view thì cuối bài mình đã nói, hầu như các plugin hay những việc liên quan tới việc đếm lượt xem của bài viết đều không thể hoạt động nếu website đang sử dụng hình thức HTML Cache (nén nội dung của trang vào tập tin HTML vào ổ cứng và truy xuất) bởi khi đó website sẽ không hề có một request bằng PHP gửi tới server mà đơn thuần chỉ là xem một nội dung HTML tĩnh.

Có một giải pháp khác để sử dụng tính năng đếm lượt xem cho post/page mà vẫn hoạt động khi website có lưu cache là sử dụng AJAX. AJAX là một kỹ thuật tải không đồng bộ của Javascript và XML nên dù website có cache hay không thì việc gửi/nhận dữ liệu liên quan đến lượt xem vẫn sẽ gửi về server sau khi trang được tải xong nên sẽ hoạt động được khi có cache.wp-ajax

Trong khi mình đang lên kế hoạch viết một tutorial về cách cải tiến code của bài này thành chức năng đếm view có hỗ trợ AJAX thì mình đã phát hiện ra rằng hiện tại WordPress có một plugin miễn phí với chức năng tương tự, thậm chí nhiều hơn tên là AJAX Hits Counter + Popular Posts Widget. Như tên gọi, nó sẽ có chức năng đếm lượt view nội dung của khách truy cập bằng AJAX và hỗ trợ một widget danh sách bài viết xem nhiều.

Tùy chỉnh widget bài xem nhiều của AJAX Hits Counter

Tùy chỉnh widget bài xem nhiều của AJAX Hits Counter

Điểm mình thích ở plugin này là có khả năng tùy biến cao ở widget. Cụ thể là ở widget bạn có thể tùy chỉnh thời gian lưu cache của widget (mặc định là 3600 giây nó sẽ cập nhật một lần) và cách hiển thị danh sách bài viết trên widget khi bạn có thể tự tùy chỉnh lại cấu trúc và CSS.

Ngay sau khi cài plugin thì nó chỉ có nhiệm vụ đếm lượt xem chứ không có hiển thị ra ngoài. Nên nếu bạn muốn thì có thể chèn code sau vào bên trong template single.php hoặc content.php để hiển thị số lượt xem của mỗi bài viết.

<?php echo( ajax_hits_counter_get_hits(get_the_ID()) ); ?>

Sau khi kiểm tra thì mình đánh giá plugin này hoạt động khá tốt ở việc đếm lượt xem với website có cache và hoàn toàn có thể làm việc với các plugin cache đình đám như WP Super Cache, W3 Total Cache và Quick Cache.

Một tin vui cho những người đang sử dụng plugin WP-PostViewscó thể import dữ liệu lượt xem từ WP-PostViews sang AJAX Hits Counter tại menu Tools.

ajax-hit-counter-import

Nhưng chức năng hiển thị số lượt xem của bài viết lại không hề xử lý bằng AJAX mà nhận dữ liệu thủ công. Do đó khi website có cache bạn không nên sử dụng chức năng hiển thị lượt xem vì nó sẽ hiển thị không chính xác, hiện tại tác giả đã xác nhận chức năng này sẽ được đưa vào ở bản cập nhật mới nhất((Xem tại https://wordpress.org/support/topic/retrieve-hits-count-with-ajax?replies=4)).

Dù vậy thì plugin này vẫn là một “phao cứu sinh” rất tốt cho những người dùng có nhu cầu đếm lượt xem bài viết của khách truy cập mà lo ngại về vấn đề sử dụng các plugin HTML Cache, và mình hy vọng là trong tương lai plugin này sẽ cập nhật thêm tính năng hiển thị lượt view ra ngoài bằng AJAX để hoàn thiện hơn.

Có thể bạn quan tâm

Hiện tại blog tạm đóng bình luận vì mình cần tập trung thời gian vào cập nhật bài viết. Bình luận sẽ mở ra cho đến khi mình sẵn sàng.