Đếm số lượt view cho Blog WP không cần Plugin

Bài viết này hướng dẫn việc đếm và hiển thị, lọc bài viết trên Blog chạy Wordpress dựa trên lượt View nếu ai sử dụng theme nào mà ko hỗ trợ chức năng lọc bài viết theo lượt view hay hiển thị số lượt view cho bài viết.

Đầu tiên, thêm đoạn mã này vào file functions.php:

<?php
// function to display number of posts.
function getPostViews($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 View";
    }
    return $count.' Views';
}

// function to count views.
function setPostViews($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);
    }
}

// Add it to a column in WP-Admin
add_filter('manage_posts_columns', 'posts_column_views');
add_action('manage_posts_custom_column', 'posts_custom_column_views',5,2);
function posts_column_views($defaults){
    $defaults['post_views'] = __('Views');
    return $defaults;
}
function posts_custom_column_views($column_name, $id){
    if($column_name === 'post_views'){
        echo getPostViews(get_the_ID());
    }
}
?>

Thêm dòng mã này vào file hiển thị bài viết, thường là single.php (Cho vào phần bắt đầu vòng lặp lấy dữ liệu):

<?php setPostViews(get_the_ID()); ?>

Xong, đã thêm được chế độ đếm số lượt view cho Blog.

Hiển thị số lượt view:

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

Lọc bài viết theo số lượt view (Sử dụng trong hiển thị SideBar chẳng hạn):

//Lấy thông thường
query_posts('meta_key=post_views_count&amp;orderby=meta_value_num&amp;order=DESC');