Như trước kia mình đã có bài hướng dẫn tự code chức năng đếm lượt xem kèm theo chức năng hiển thị ra bên ngoài và sắp xếp bài viết theo thứ tự xem nhiều. Tuy nhiên bài hướng dẫn đó chỉ nằm ở mức đơn giản mà nếu bạn có nhu cầu đếm lượt xem đa dạng hơn, dễ dàng quản lý thì phải làm nhiều hơn.
Nếu bạn là người dùng phổ thông và cần một chức năng đếm lượt xem bài viết tốt hơn, vẫn có chức năng hiển thị lượt xem đầy đủ thì ở bài này mình sẽ giới thiệu các bạn đến plugin WP Statistics và cách làm hiển thị lượt xem ra bên ngoài bài viết. Còn nếu bạn là lập trình viên, bạn vẫn có thể sử dụng plugin này tốt vì nó hỗ trợ rất nhiều shortcode và hàm cần tùy biến.
Hiển thị lượt xem ra ngoài website
Hiển thị thống kê toàn bộ website bằng widget
Hiển thị lượt xem trong nội dung bài viết
Danh sách các shortcode của WP Statistics
Danh sách các hàm PHP của WP Statistics
Xóa bớt dữ liệu của WP Statistics trong database
Đây là một plugin hỗ trợ đếm lượt xem của bài viết (áp dụng cho tất cả các post type) khá lâu đời và đến nay nó đã được phát triển lên phiên bản 8.7.2 với gần 1 triệu lượt tải về. Bản thân mình vẫn đang sử dụng plugin này cho một số website cần đếm lượt xem từng bài viết ngoài việc sử dụng Google Analytics và thấy nó rất ổn định để sử dụng.
Các chức năng chính:
Ngay sau khi cài đặt, lượt xem của bạn sẽ được tính lại từ đầu nếu bạn cài đặt plugin WP Statistics lần đầu tiên. Bạn sẽ thấy một khu vực rất rộng lớn bao gồm quản trị và tùy chỉnh thông số của plugin tại menu Statistics trong Dashboard.
Mặc định chỉ cần kích hoạt plugin lên là nó có thể tự đếm lượt xem cho bạn rồi, bạn có thể để nguyên hoặc muốn thì vào Statistics -> Settings để thiết lập.
Trong phần thiết lập có rất nhiều tùy chọn nên mình sẽ chỉ giải thích ý nghĩa của từng tab tùy chọn để bạn hình dung thôi nhé.
Khi bạn vào phần quản lý các bài viết (ví dụ Posts -> All Posts), bạn sẽ thấy nó xuất hiện thêm một cột hiển thị số lượt truy cập của từng post và dữ liệu nó sẽ được cập nhật liên tục mỗi lần xem bài là một lượt xem.
Hoặc nếu bạn muốn xem chi tiết hơn bạn có thể click vào số lượt xem trên từng post hoặc hãy vào Statistics -> Overview để xem thống kê toàn diện về website hơn.
WP Statistics cung cấp cho bạn một widget tên là Statistics nên bạn có thể sử dụng trong Appearance -> Widget. Trong widget này nó có rất nhiều tùy chọn mà bạn muốn hiển thị thống kê gì thì cứ click vào.
Nếu bạn có cài tiếng Việt cho WordPress thì widget sẽ hiển thị thế này:
Mặc định plugin WP Statistics sẽ không hỗ trợ bạn thiết lập tự hiển thị số lượt xem của nó khi vào xem nội dung một bài viết do các vấn đề liên quan xảy ra khi sử dụng cache. Tuy nhiên nếu cần thiết, bạn có thể làm được việc này bằng shortcode hoặc một hàm PHP mà plugin có hỗ trợ.
Nếu bạn muốn lấy lượt xem của bài viết hiện tại thì có thể viết một shortcode này vào nội dung:
[wpstatistics stat=pagevisits]
Mặc định nó sẽ lấy tổng số lượt xem. Nếu bạn muốn lấy số lượt xem của bài theo ngày, tuần hoặc tháng thì có thể thêm tham số time vào, ví dụ:
[wpstatistics stat=pagevisits time=week]
Các tham số time bao gồm:
Nếu bạn muốn cho nó tự hiển thị shortcode này trên toàn bộ bài viết thì có thể sử dụng hàm do_shortcode và chèn vào file single.php (template để hiển thị nội dung của post).
<?php do_shortcode('[wpstatistics stat=pagevisits]');?>
Còn nếu bạn muốn sử dụng hàm PHP để lấy số lượt xem của một bài post hiện tại thì chèn vào file single.php như sau:
<?php echo "Lượt xem ". wp_statistics_pages( 'total' , get_permalink($post->ID), $post->ID); ?>
Trong đó, total là tham số thời gian giống như ở trên.
Ngoài việc hiển thị số lượt xem của post như mình đã bày ở trên thì plugin này còn có rất nhiều shortcode khác nhau để bạn sử dụng một cách linh hoạt nhất.
Cách viết shortcode của WP Statistics phải là:
[wpstatistics stat=xxx time=xxx provider=xxx]
Trong đó,
stat
– Loại dữ liệu cần hiển thị (xem bên dưới)time
– thời gian truy xuất dữ liệu (như ở trên)provider
– Nếu muốn xem thống kê lượt truy cập của bot tìm kiếm thì dùng tham số này (bing/duckduckgo/google/yahoo/yandex).Tham số stat bao gồm các giá trị sau:
Stat | Mô tả |
usersonline | Số lượng người dùng đang online trên website. |
visits | Số lượt xem của website. |
visitors | Số người truy cập của website. |
pagevisits | Số lượt xem của post hiện tại (áp dụng cho các post type khác). |
searches | Tổng số lượt truy cập từ máy tìm kiếm. |
postcount | Tổng số bài post có trên website. |
pagecount | Tổng số page có trên website. |
commentcount | Tổng số lượt bình luận trên website. |
spamcount | Tổng số lượt bình luận spam. |
usercount | Tổng số người dùng trên website (user). |
postaverage | Số lượt bài đăng trung bình của mỗi user trên website. |
commentaverage | Số lượt bình luận trung bình của mỗi user trên website. |
useraverage | Số lượng user trung bình. |
lpd | Ngày cuối cùng có đăng bài trên website. |
Ví dụ:
Công dụng của các hàm PHP hầu như giống hoàn toàn shortcode, nhưng cái khác nhau là có hàm có tham số, có hàm không có tham số nào. Dưới đây là bảng danh sách các hàm của WP Statistics, nếu có tham số thì mình cũng có ghi vào.
Function | Mô tả |
wp_statistics_useronline() | Hiển thị số người đang online. |
wp_statistics_visitor(time) | Hiển thị tổng số người truy cập. |
wp_statistics_visit(time) | Hiển thị tổng số lượt truy cập |
wp_statistics_pages(time,uri,id) | Hiển thị tổng số lượt truy cập của một trang nào đó. |
wp_statistics_uri_to_id(uri) | Lấy số ID của trang hiện tại (áp dụng cho post type). |
wp_statistics_get_top_pages() | Lấy danh sách các trang nhiều. |
wp_statistics_get_uri() | Lấy đường dẫn của trang hiện tại đang xem. |
wp_statistics_searchengine(provider, time) | Hiển thị tổng số lượt truy cập từ máy tìm kiếm. |
wp_statistics_ua_list() | Lấy danh sách các User Agent truy cập vào website. |
wp_statistics_useragent(agent) | Lấy số lượt truy cập của một User Agent nhất định. |
wp_statistics_platform_list() | Lấy danh sách các nền tảng sử dụng của người truy cập. |
wp_statistics_platform(platform) | Hiển thị lượt truy cập dựa theo một nền tảng sử dụng nhất định. |
wp_statistics_agent_version_list(agent) | Lấy danh sách phiên bản của User Agent. |
wp_statistics_agent_version(agent, version) | Lấy tổng số lượt truy cập dựa theo phiên bản User Agent. |
wp_statistics_searchengine_list(all) | Lấy danh sách các máy tìm kiếm có lượt truy cập vào website. |
wp_statistics_searchword_query (search_engine) | Lấy truy vấn tìm kiếm của người dùng tìm thấy nội dung của bạn trên máy tìm kiếm theo tên máy tìm kiếm nhất định. |
wp_statistics_searchengine_query (search_engine) | Returns the SQL query portion to find all search engine results for a given search engine |
wp_statistics_searchengine_regex (search_engine’) | Trả về kết quả kiểu regex (biểu thức chính quy) của các trang nhận được truy cập từ máy tìm kiếm. |
wp_statistics_countposts() | Danh sách số lượng post có trên website. |
wp_statistics_countpages() | Danh sách số lượng page có trên website. |
wp_statistics_countcomment() | Danh sách số lượng bình luận có trên website. |
wp_statistics_countspam() | Danh sách số lượng bình luận spam có trên website. |
wp_statistics_countusers() | Danh sách số lượng người dùng có trên website. |
wp_statistics_lastpostdate() | Ngày cuối cùng có đăng bài. |
wp_statistics_average_post() | Lấy số lượng post trung bình của website. |
wp_statistics_average_comment() | Lấy số lượng bình luận trung bình của website. |
wp_statistics_average_registeruser() | Lấy số lượng người dùng trung bình của website. |
Tất cả các hàm đều chỉ get dữ liệu nên nếu bạn muốn hiển thị ra thì phải kèm theo từ khóa “echo” để nó hiển thị nhé.
Nếu sau bạn sử dụng plugin này trong thời gian dài thì dĩ nhiên các dữ liệu về lượt truy cập của plugin này trong database là khá lớn. Do vậy thi thoảng bạn có thể tự xóa các dữ liệu không cần thiết bằng cách vào Statistics -> Optimization -> Purging để xóa dữ liệu. Bạn có thể xóa toàn bộ dữ liệu trong khoảng thời gian nhất định hoặc một loại dữ liệu nào đó bạn không sử dụng đến.
Như bạn thấy, plugin này sẽ lưu lượt truy cập dựa vào một truy vấn mới vào database. Vì vậy nếu bạn sử dụng các plugin cache và áp dụng phương thức HTML Cache (ghi nội dung cache thành một file .html như các plugin cache phổ biến) thì chắc chắn nếu người truy cập vào website bạn và xem nội dung cache sẽ không được tính là một lượt xem trang, bởi vì đó chỉ là một trang tĩnh chứ không hề chứa bất kỳ truy vấn nào.
Do vậy, sử dụng plugin này cũng đồng nghĩa nó sẽ hoạt động không tốt nếu website bạn có dùng HTML Cache. Còn nếu bạn dùng máy chủ riêng với các loại cache khác như Opcode Cache, Object Cache hay Database Cache thì vẫn sử dụng tốt được do nó còn gửi truy vấn được ở mỗi lượt truy cập.
Có thể bạn thích: Plugin đếm lượt view bằng AJAX làm việc với cache.
Tham khảo: Các hình thức caching và ý nghĩa của nó.
Cũng do đặc tính nó thường xuyên phải ghi dữ liệu mới vào database nên chắc chắn nó sẽ tốn khá nhiều tài nguyên trên host. Nên hãy chắc chắn là host của bạn có PHP Memory Limit từ 64MB trở lên. Còn nếu bạn có lượt truy cập lớn, nhiều trang thì PHP Memory Limit cũng từ 128MB trở lên thì sẽ thoải mái hơn. Mà mình nghĩ chắc chức năng này thì đa phần là các site nhỏ hoặc trung bình sẽ dùng tới chứ site lớn họ không có dùng các giải pháp self-hosted như thế này nữa vì ảnh hưởng khá nhiều đến hiệu suất của website.
Nên xem: Những loại plugin tốn tài nguyên trên host.
Trong bài này mình đã trình bày chi tiết về plugin WP Statistics và cách sử dụng cũng như các lưu ý về nó. Thực ra mình viết bài này cũng là vô tình thôi vì khi sáng có hỗ trợ một bạn trên group WordPress Việt Nam và bạn ấy cần lôi cái lượt truy cập hiển thị ra nội dung của bài viết. Nhưng hy vọng plugin này cũng sẽ có ích đối với nhiều bạn ở đây.