Bạn đang muốn tạo bộ đếm số lượt xem trang/bài viết để theo dõi lưu lượng truy cập blog/website WordPress của mình? Hay đơn giản bạn đang muốn “khoe” với mọi người rằng những bài viết trên blog/website của bạn nhận được rất nhiều sự quan tâm, chú ý?

Đếm lượt xem bài viết WordPress không cần Plugins

Cách tốt nhất để làm điều đó chính là hiển thị số lượt xem ngay trong trang hoặc bài viết. Bài viết này hướng dẫn cách tự làm bộ đếm số lần xem trang mà không cần dùng Plugins hỗ trợ.

Cập nhật functions.php

Bạn thêm 3 phương thức sau.

/*
 * Lấy số lượt xem
 */
function get_post_view($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";
    }
    
    return $count;
}

/*
 * Tính số lượt xem (+1)
 */
function set_post_view($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);
    }
}

/*
 * Lấy số lượt xem của Category
 */
function count_cat_view($catID) {
    $count = 0;
    query_posts('posts_per_page=-1&cat=' . $catID);
    if (have_posts()) {
        while (have_posts()) {
            the_post();
            $count += get_post_view(get_the_ID());
        }
    } wp_reset_query();
    
    return $count;
}

Sử dụng

Để tính lượt xem, ở đầu single.php, các bạn phương thức set_post_view (sau dòng if (have_posts()) : the_post();).

set_post_view(get_the_ID());

Để xuất ra số lượt xem của bài viết, gọi phương thức get_post_view.

echo get_post_view(get_the_ID());

category.php, gọi phương thức count_cat_view. Có rất nhiều cách để lấy ID của Category, mình ví dụ một cách.

$cat_title = single_cat_title('', false);
$category = get_term_by('name', $cat_title, 'category');
echo count_cat_view($category->term_id);

Chúc các bạn thành công!