Subscribe Now

Trending News

Bài viết

Lập trình, WordPress

Hướng dẫn code đếm số lượt xem bài viết WordPress không dùng plugin

Hướng dẫn code đếm số lượt xem bài viết WordPress không dùng plugin

Nhiều lúc bạn muốn đếm số lượt xem bài viết trong WordPress nhưng bạn lại không muốn dùng plugin để thêm nặng nề, thủ thuật sau đây có lẽ sẽ hữu ích cho bạn!

1. Thêm function wpb_set_post_views($postID) và wpb_get_post_views($postID) vào file function.php

function wpb_set_post_views($postID) {
    $count_key = 'wpb_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);
    }
}
//Dòng này để chắc chắc WordPress sẽ đếm chính xác hơn
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);

function wpb_get_post_views($postID){
    $count_key = 'wpb_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;
    }
    return $count;
}
  • wpb_set_post_views($postID): hàm này sẽ thực hiện đếm số lượt xem bài viết mỗi khi bạn load một bài viết
  • wpb_get_post_views($postID): hàm này sẽ thực hiện hiển thị số lượt xem bài viết bạn đã đếm được

2. Gọi function wpb_set_post_views($postID) trong file single.php

<?php
/**
 * The Template for displaying all single posts.
 *
 * @package ...
 */

wpb_set_post_views(get_the_ID());
get_header(); ?>
...

Không chỉ riêng file single.php, bạn có thể thêm vào bất cứ file nào mà bạn nghĩ nó sẽ load được bài viết

3. Echo function wpb_get_post_views($postID) vào nơi nào bạn muốn hiển thị số lượt xem, mình echo trong phần content bài viết với dòng như sau

<span><i class="fa fa-eye" aria-hidden="true"> </i><?php echo wpb_get_post_views(get_the_ID()); ?></span>

Echo ra kết quả đếm lượt truy cập, ở trên mình sử dụng thư viện Bootstrap nên có thêm icon eye cho đẹp mắt, bạn có thể tùy chỉnh lại theo ý mình thích.

Vậy là ok rồi nhé các bạn, chúc các bạn thành công!

Bài viết liên quan

Theo dõi
Thông báo của
guest

15 Góp ý
Mới nhất
Cũ nhất Được bỏ phiếu nhiều nhất
Phản hồi nội tuyến
Xem tất cả bình luận
Tấn Nguyễn
Tấn Nguyễn
2 năm trước

ok , đc rồi, cảm ơn b, bài viết hay lắm

Lần cuối chỉnh sửa 2 năm trước bởi Tấn Nguyễn
Đỗ Đức
3 năm trước

Cho mình hỏi, code này có áp dụng được với web có dùng plugin tạo cache như wp super cache , wp-rocket…không ạ.

Hiêu Lê
Hiêu Lê
3 năm trước

Chào anh, anh cho em hỏi chút! – Đây là trang của em ạ: MMEVN.COM
– Em dùng code đếm views mặc định thì là 0 views
– Còn khi em dùng funtions trên mạng + code thì nó hiện thị views gốc.
Nhưng xem trang thì lại không nẩy views.
Anh ơi, anh giúp em với ạ.!

Lê Vinh
Lê Vinh
3 năm trước

Chào bạn mình làm theo các bước , bước cuối cùng mình bỏ vào content.php . Không thấy hiển thị gì hết vậy bạn

NTY
NTY
3 năm trước

A ơi cho em hỏi trường hợp mình chưa nhấp vào một bài viết nào đó! mà mình nhấp vào Popular post(lượt view nhiều nhất) chẳng hạn thì cái biến ‘wpb_post_views_count’ lúc này ở các bài viết chưa được tạo thì sẽ không có bài viết nào xuất hiện ở Tabs Popular post ak anh! có cách nào khi mình load trang chủ lên nhấp vào popular post là nó sẽ select các bài chưa có lượt view lun k anh! em cảm ơn nhiều ak!

Thien Y
Thien Y
3 năm trước

remove_action( ‘wp_head’, ‘adjacent_posts_rel_link_wp_head’, 10, 0) Sao em bỏ hàm này vào mà nó vẫn đếm 2 lần là sao ak :((((((((

Ntn
Ntn
3 năm trước

Cho e hỏi cái biến ‘wpb_post_views_count’ ở đâu ra vậy ak! e add vào function nó không hoạt động

Ntn
Ntn
3 năm trước
Trả lời  Admin

Thank Bạn nhiều! đã hiếu! hihi! nó k có nó sẽ tự sinh :v