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!

Tổng hợp Khuyến mãi, Coupon Dediserve 2020 (Special)

Bài viết liên quan

Subscribe
Notify of
guest
13 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
Đỗ Đức
11 months ago

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ê
1 year ago

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
1 year ago

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
1 year ago

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
1 year ago

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
1 year ago

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
1 year ago
Reply to  Admin

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