Chức Năng Thống Kê Lượt Truy Cập Trong WordPress

12 Tháng 10, 2024

Chức năng thống kê lượt truy cập là rất quan trọng để bạn có cái nhìn tổng quát về lưu lượng truy cập trên website của mình. Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách thêm chức năng thống kê lượt truy cập cho website WordPress của bạn, bao gồm lượt trong ngày, trong tuần, trong năm, tổng số lượt và nhật ký các IP đã truy cập chỉ dành cho quản trị viên.

Tại Sao Nên Thêm Chức Năng Này?

  1. Theo dõi lưu lượng truy cập: Giúp bạn hiểu rõ hơn về hành vi của người dùng và điều chỉnh nội dung phù hợp.
  2. Cải thiện SEO: Tối ưu hóa nội dung dựa trên lưu lượng truy cập thực tế.
  3. Không cần plugin: Giảm tải cho website và tăng tính bảo mật.

Cách Thực Hiện

Dưới đây là hướng dẫn từng bước để bạn có thể thêm chức năng thống kê lượt truy cập này.

Bước 1: Tạo Bảng Lưu Trữ Lượt Truy Cập

Trước tiên, bạn cần tạo một bảng trong cơ sở dữ liệu để lưu trữ thông tin lượt truy cập. Bạn có thể thêm mã sau vào tệp functions.php của theme

function create_visits_table() {
    global $wpdb;
    $table_name = $wpdb->prefix . 'visits';
    
    $charset_collate = $wpdb->get_charset_collate();
    
    $sql = "CREATE TABLE IF NOT EXISTS $table_name (
        id mediumint(9) NOT NULL AUTO_INCREMENT,
        post_id mediumint(9) NOT NULL,
        visit_time datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
        ip_address varchar(100) NOT NULL,
        user_agent text NOT NULL,
        PRIMARY KEY  (id)
    ) $charset_collate;";
    
    require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
    dbDelta($sql);
}
add_action('after_setup_theme', 'create_visits_table');

Bước 2: Ghi Nhận Lượt Truy Cập

Tiếp theo, bạn cần ghi nhận lượt truy cập mỗi khi người dùng truy cập vào một bài viết. Thêm đoạn mã sau vào functions.php

function record_visit($postID) {
    global $wpdb;
    $table_name = $wpdb->prefix . 'visits';
    $ip_address = $_SERVER['REMOTE_ADDR'];
    $user_agent = $_SERVER['HTTP_USER_AGENT'];
    
    $wpdb->insert(
        $table_name,
        array(
            'post_id' => $postID,
            'ip_address' => $ip_address,
            'user_agent' => $user_agent,
        )
    );
}

function track_post_visit() {
    if (is_single()) {
        global $post;
        record_visit($post->ID);
    }
}
add_action('wp_head', 'track_post_visit');

Bước 3: Tạo Menu trong wp-admin

Để tạo menu trong wp-admin để quản trị viên có thể xem thống kê lượt truy cập, bạn cần thêm đoạn mã sau vào functions.php

function visits_menu() {
    add_menu_page(
        'Thống Kê Lượt Truy Cập', // Tiêu đề trang
        'Lượt Truy Cập', // Tiêu đề menu
        'manage_options', // Quyền
        'visits-statistics', // Slug
        'display_visits_statistics', // Hàm hiển thị
        'dashicons-chart-area', // Biểu tượng
        6 // Vị trí
    );
}
add_action('admin_menu', 'visits_menu');

function display_visits_statistics() {
    global $wpdb;
    $table_name = $wpdb->prefix . 'visits';
    
    // Lấy thông tin thống kê
    $today_visits = $wpdb->get_var("SELECT COUNT(*) FROM $table_name WHERE DATE(visit_time) = CURDATE()");
    $total_visits = $wpdb->get_var("SELECT COUNT(*) FROM $table_name");
    
    echo '<h1>Thống Kê Lượt Truy Cập</h1>';
    echo '<p>Lượt xem hôm nay: ' . esc_html($today_visits) . '</p>';
    echo '<p>Tổng lượt xem: ' . esc_html($total_visits) . '</p>';

    // Hiển thị nhật ký IP truy cập
    echo '<h2>Nhật ký IP Truy Cập</h2>';
    $ip_log = $wpdb->get_results("SELECT DISTINCT ip_address, visit_time FROM $table_name ORDER BY visit_time DESC");
    if ($ip_log) {
        echo '<table>';
        echo '<tr><th>IP Address</th><th>Thời gian</th><th>Trình duyệt</th></tr>';
        foreach ($ip_log as $ip) {
            echo '<tr>';
            echo '<td>' . esc_html($ip->ip_address) . '</td>';
            echo '<td>' . esc_html($ip->visit_time) . '</td>';
            echo '<td>' . esc_html($ip->user_agent) . '</td>';
            echo '</tr>';
        }
        echo '</table>';
    } else {
        echo '<p>Chưa có lượt truy cập nào.</p>';
    }
}

Bước 4: Tính Toán Lượt Truy Cập

Để tính toán lượt truy cập theo ngày, tuần, tháng, và tổng lượt truy cập, bạn có thể thêm các hàm sau vào functions.php

function get_visit_count($postID, $period) {
    global $wpdb;
    $table_name = $wpdb->prefix . 'visits';
    
    if ($period == 'total') {
        return $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM $table_name WHERE post_id = %d", $postID));
    } else {
        $date_format = $period == 'day' ? 'Y-m-d' : ($period == 'week' ? 'W' : 'Y');
        return $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM $table_name WHERE post_id = %d AND DATE(visit_time) = CURDATE()", $postID));
    }
}

Bước 5: Hiển Thị Thống Kê

Để hiển thị thống kê lượt truy cập trên website, bạn có thể sử dụng đoạn mã sau trong single.php

$postID = get_the_ID();
echo 'Lượt xem hôm nay: ' . get_visit_count($postID, 'day') . '<br>';
echo 'Tổng lượt xem: ' . get_visit_count($postID, 'total') . '<br>';

Kết Luận

Việc thêm chức năng thống kê lượt truy cập vào website WordPress của bạn không chỉ giúp bạn theo dõi lưu lượng truy cập mà còn hỗ trợ trong việc tối ưu hóa nội dung hiệu quả. Bạn có thể áp dụng các bước hướng dẫn trên để tích hợp tính năng này ngay hôm nay!

Quảng Cáo

Blog ..

Hướng dẫn dịch vụ ..

VPS
Hosting
Proxy
Email
Chat
Chat Zalo Zalo Chat Facebook Messenger Page Facebook Facebook Chat Telegram Telegram
CPU Platinum CPU Gold CPU E5