Đối với các trang blog cho phép độc giả bình luận thì việc thống kê top người bình luận và hiển thị ra sidebar sẽ giúp người dùng có động lực để gửi bình luận hơn. Bài viết này mình sẽ hướng dẫn cho các bạn code truy vấn top commenter trên blog WordPress.
Ngay bây giờ, bạn vào thư mục giao diện hiện tại của WordPress, mở tập tin functions.php lên và thêm vào đoạn code bên dưới:
function hocwp_get_top_commenters( $number = 5, $echo = true ) { global $wpdb; $results = $wpdb->get_results( ' SELECT COUNT(comment_author_email) AS comments_count, comment_author_email, comment_author, comment_author_url FROM ' . $wpdb->comments . ' WHERE comment_author_email != "" AND comment_type = "" AND comment_approved = 1 GROUP BY comment_author_email ORDER BY comments_count DESC, comment_author ASC LIMIT ' . $number ); $output = "<ul class='top-commenters'>"; foreach ( $results as $result ) { $output .= "<li><a href='" . $result->comment_author_url . "'>" . $result->comment_author . "</a></li>"; } $output .= "</ul>"; if ( $echo ) { echo $output; } return $output; }
Bây giờ, bạn mở các tập tin template khác và thêm hàm bên dưới vào chỗ mà bạn muốn hiển thị danh sách top người bình luận, thường thì sẽ nằm trên sidebar hoặc khu vực widget dưới chân trang.
<?php hocwp_get_top_commenters(); ?>
Ngoài ra, bạn hoàn toàn có thể viết thành widget để sử dụng, kéo thả hiển thị widget top commenter lên bất kỳ vị trí nào của sidebar mà bạn muốn hiển thị.
Xem thêm: Hướng dẫn tạo widget đơn giản cho WordPress
Nếu bạn nào không thích vọc code thì có thể sử dụng plugin do người khác viết, bạn có thể tham khảo các plugin: Top Commentators Widget hoặc Simple Top Commenters.
Như vậy là bạn đã có thể hiển thị được danh sách top người bình luận ra bên ngoài WordPress, nhờ có chức năng này mà các độc giả của bạn sẽ tích cực bình luận hơn để xuất hiện trên top. Chúc bạn thành công.
Em đang nghía xem bác dán cái code top comment chỗ nào, đã mấy phút rồi vẫn chưa tìm ra nè :v
Công nhận code được thì loại đc khá nhiều plugin 😀
Mới viết bài để đó chứ chưa làm bạn à. Nếu viết mình sẽ thêm phần cache giống như nói với bạn hồi sáng đó.
Ò, thông thường thì em làm xong em mới viết bài, bác ngược e rồi đấy 😀 Cái đoạn code đếm lượt xem của em hình như nó sẽ có vấn đề với cache, khi nào bác viết bài hướng dẫn em thêm cái đó vào với nhé !
Lâu lâu khác thường đó mà. Chứ bình thường thì làm xong mới viết. Giờ đang bận nên chưa làm được, chỉ test localhost thôi.
Haha, thông thường e cũng làm trên localhost trước chứ không có chơi cho web chính trước bác ạ 😀
Bác Cường, web của em tự dưng lỗi topcomment, giờ xài code của bác để lấy lại top comment. Nhưng mà làm sao để lấy avatar nằm bên cạnh tên nick và giới hạn số ngày hoặc tháng như bác nhỉ ?
Bạn thử trên localhost trước nhé. Nếu chỗ nào ko được thì báo lại để mình gửi code: [php] <ul> <?php foreach ( $commenters as $commenter ) { $email = $commenter->comment_author_email; if ( ! is_email( $email ) ) { continue; } $name = $commenter->comment_author; $avatar = get_avatar( $email, 48, ”, $name ); $avatar .= ‘ ‘ . $name; $avatar .= ‘ (‘ . $commenter->comments_count . ‘)’; $url = esc_url( $commenter->comment_author_url ); if ( ‘http://’ == $url || ‘https://’ == $url ) { $url = ”; } if ( ! empty( $url ) ) { $avatar = sprintf( ‘<a href="%s" title="%s"… Đọc tiếp »
Code này dán vào widget hỗ trợ chèn code php hay dán vào đâu vậy bác ? Em thử trong file function.php thay thế đoạn code trong bài viết thì lỗi web. E Ctrl + Z lại nên cũng không sao.
Nó hiện lỗi gì gửi mình xem được ko? Nếu vài hôm mà vẫn chưa làm được mình sẽ viết widget gửi bạn 🙂
Như thế thì phiền bác quá. Hay là bác viết widget đăng lên đi chứ cái widget kia bị hỏng rồi. Trên trang wordpress.org thấy mọi người cũng phản hồi mà tác giả không nói gì hết 😀
Ok, xong dự án bên mình rồi mình viết widget share nhé.
Bạn bỏ vào widget chạy code PHP thử. Nếu ko được thì bạn viết widget rồi dùng: https://hocwp.net/guide/tu-tao-widget-don-gian-cho-wordpress/