Hướng dẫn thêm nút hữu ích vào bài viết

Mở file functions.php trong child theme của bạn (nếu chưa có child theme, bạn nên tạo child theme để tránh mất thay đổi khi update theme). Thêm đoạn code sau:

// Hàm lấy số lượng Like hoặc Dislike
function ip_get_like_count($type = 'likes') {
    $current_count = get_post_meta(get_the_id(), $type, true);
    return ($current_count ? $current_count : 0);
}


// Hàm xử lý Like và Dislike
function ip_process_like() {
    if (is_singular('post')) {
        if (isset($_GET['post_action']) && isset($_GET['_wpnonce']) && wp_verify_nonce($_GET['_wpnonce'], 'ip_like_action')) {
            $processed_like = false;
            $redirect = false;


            // Kiểm tra hành động Like hoặc Dislike
            if ($_GET['post_action'] == 'like') {
                $like_count = get_post_meta(get_the_id(), 'likes', true);
                $like_count = $like_count ? $like_count + 1 : 1;
                $processed_like = update_post_meta(get_the_id(), 'likes', $like_count);
            } elseif ($_GET['post_action'] == 'dislike') {
                $dislike_count = get_post_meta(get_the_id(), 'dislikes', true);
                $dislike_count = $dislike_count ? $dislike_count + 1 : 1;
                $processed_like = update_post_meta(get_the_id(), 'dislikes', $dislike_count);
            }


            if ($processed_like) {
                $redirect = get_the_permalink(); // Trả về trang bài viết sau khi cập nhật
            }


            if ($redirect) {
                wp_redirect($redirect); // Tải lại trang để hiển thị kết quả mới
                die;
            }
        }
    }
}
add_action('template_redirect', 'ip_process_like');

CSS tí cho đẹp

/* CSS nút hữu ích */
.ok-like a {
margin-right: 10px;
text-decoration: none;
color: #111;
font-size: 13px;
font-weight: bold;
background: #fff444;
padding: 5px 8px 5px 8px;
border-radius: 7px;
display: inline-block;
}
.ok-like a:hover {
color: #fff;
background: #0c0;
}
.title-like {
color: #ccc;
font-size: 15px;
}
.yes-likes {
padding: 20px;
background: #4b238a;
text-align: center;
border-radius: 10px;
}
@media (max-width: 400px) {
.ok-like a {
font-size: 10px;
}
}
/*---------------------------------------------*/

 

Chào ! Bạn thấy nội dung này thế nào?

Để lại một bình luận

💬
Trợ lý Webdy
Chatbot được phát triển bởi Webdy.vn