Chức Năng Đánh Giá Bài Viết Trong Theme WordPress

12 Tháng mười, 2024

Chức năng đánh giá bài viết là một tính năng hữu ích giúp người dùng có thể chia sẻ ý kiến của họ về nội dung của bạn. Việc này không chỉ giúp cải thiện trải nghiệm người dùng mà còn tạo ra sự tương tác và tăng độ tin cậy cho bài viết của bạn. 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 đánh giá bài viết vào theme WordPress mà không cần sử dụng plugin.

Tại Sao Nên Thêm Chức Năng Đánh Giá Bài Viết?

  1. Tăng cường sự tương tác: Giúp người đọc cảm thấy có trách nhiệm và tham gia nhiều hơn vào nội dung.
  2. Cải thiện chất lượng nội dung: Ý kiến của người dùng có thể cung cấp phản hồi hữu ích để bạn cải thiện bài viết.
  3. Tạo độ tin cậy: Đánh giá từ người dùng giúp xây dựng lòng tin và uy tín cho nội dung của bạn.

Cách Thực Hiện

Dưới đây là các bước chi tiết để bạn thêm chức năng đánh giá bài viết vào website WordPress của mình:

Bước 1: Tạo Bảng Cơ Sở Dữ Liệu

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 đánh giá. Thêm mã sau vào tệp functions.php của theme bạn

function create_rating_table() {
    global $wpdb;
    $table_name = $wpdb->prefix . 'post_ratings';
    $charset_collate = $wpdb->get_charset_collate();
    
    // Kiểm tra nếu bảng chưa tồn tại
    if ($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name) {
        $sql = "CREATE TABLE $table_name (
            id mediumint(9) NOT NULL AUTO_INCREMENT,
            post_id mediumint(9) NOT NULL,
            rating tinyint(1) NOT NULL,
            PRIMARY KEY (id)
        ) $charset_collate;";
        
        require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
        dbDelta($sql);
    }
}
add_action('after_setup_theme', 'create_rating_table');

Bước 2: Hiển Thị Form Đánh Giá

Thêm đoạn mã sau vào tệp single.php (hoặc nơi bạn muốn hiển thị form đánh giá)

function display_rating_form($post_id) {
    ?>
    <div class="rating-form">
        <h3>Đánh giá bài viết</h3>
        <form method="post">
            <input type="hidden" name="post_id" value="<?php echo $post_id; ?>">
            <label for="rating">Đánh giá:</label>
            <select name="rating" required>
                <option value="">Chọn đánh giá</option>
                <option value="1">1 sao</option>
                <option value="2">2 sao</option>
                <option value="3">3 sao</option>
                <option value="4">4 sao</option>
                <option value="5">5 sao</option>
            </select>
            <input type="submit" name="submit_rating" value="Gửi đánh giá">
        </form>
    </div>
    <?php
}

if (have_posts()) {
    while (have_posts()) {
        the_post();
        display_rating_form(get_the_ID());
    }
}

Bước 3: Xử Lý Đánh Giá

Thêm mã sau vào tệp functions.php để xử lý việc gửi đánh giá

function handle_rating_submission() {
    if (isset($_POST['submit_rating'])) {
        global $wpdb;
        $post_id = intval($_POST['post_id']);
        $rating = intval($_POST['rating']);
        
        if ($post_id > 0 && $rating > 0) {
            $table_name = $wpdb->prefix . 'post_ratings';
            $wpdb->insert($table_name, array('post_id' => $post_id, 'rating' => $rating));
        }
    }
}
add_action('wp_head', 'handle_rating_submission');

Bước 4: Hiển Thị Điểm Trung Bình Đánh Giá

Cuối cùng, bạn có thể thêm mã sau vào tệp single.php để hiển thị điểm trung bình đánh giá cho bài viết

function display_average_rating($post_id) {
    global $wpdb;
    $table_name = $wpdb->prefix . 'post_ratings';
    $average_rating = $wpdb->get_var("SELECT AVG(rating) FROM $table_name WHERE post_id = $post_id");
    
    if ($average_rating) {
        echo '<p>Điểm trung bình đánh giá: ' . round($average_rating, 2) . ' sao</p>';
    }
}

if (have_posts()) {
    while (have_posts()) {
        the_post();
        display_average_rating(get_the_ID());
    }
}

Kết Luận

Việc thêm chức năng đánh giá bài viết vào theme WordPress của bạn là một cách hiệu quả để tương tác với người dùng và cải thiện nội dung của bạn. Hãy áp dụng ngay hôm nay để tối ưu hóa trải nghiệm người dùng trên website của bạn!

Quảng Cáo

Blog ..

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

Zalo
Proxy
VPS
Tài khoản
Hosting
Tên miền
Facebook