Xin chào các bạn, hiện tại ở trên mạng có rất nhiều đoạn code cho phép các bạn hiển thị danh sách thành viên bình luận nhiều trong tháng, nhưng do tôi thấy chúng kém bảo mật, kém khoa học quá nên tôi sẽ sửa đoạn code đó và chia sẻ cho các bạn nhằm giúp các bạn nhanh chóng hiển thị được danh sách thành viên bình luận !
Thực tế, hiển thị danh sách thành viên bình luận nhiều nhất trong tháng cũng là cách khuyến khích người dùng phấn đấu cho cái bảng xếp hạng ấy, nhìn cũng vui vui !
Sau đây là đoạn code đó:
function jamviet_top_comment_authors($amount = 5, $month = 'all') { global $wpdb; $ExtraSQL = ''; if ( $month != 'all' ) { $month = (int)$month; if ( $month > 12 || $month < 1 ) { return; } $maxday = cal_days_in_month(CAL_GREGORIAN, $month, date('Y')); $ExtraSQL = sprintf('AND comment_date > \'%s\' AND comment_date < \'%s\'', date("Y-$month-01 00:00:00", current_time('timestamp') ), date("Y-$month-$maxday 23:59:59", current_time('timestamp') ) ); } $results = $wpdb->get_results( sprintf(' SELECT COUNT(comment_author_email) AS comments_count, comment_author_email, comment_author, comment_author_url FROM %s WHERE comment_author_email != "" AND comment_type != "pingback" AND comment_approved = 1 %s GROUP BY comment_author_email ORDER BY comments_count DESC LIMIT %d', $wpdb->comments, $ExtraSQL, $amount) ); if ( $results ) { $output = '<ul>'; foreach($results as $result) { $output .= "<li><a href='". $result->comment_author_url ."' rel='nofollow'>". $result->comment_author ." (".$result->comments_count .")</a></li>"; } $output .= '</ul>'; return $output; } return false; }
Đoạn code trên các bạn phải đặt ở file Functions.php
nhé, sau khi thêm code xong các bạn có thể gọi ra ở bất kỳ nơi đâu:
// hiển thị ra echo jamviet_top_comment_authors(5, 6);
Trong đó:
- Cái biến đầu tiên ( số 5 ý ) là để hiển thị số lượng bạn muốn, điền càng nhiều càng chậm 😀
- Cái biến 2, cái số 6 ý, là tháng, tôi tách ra để các bạn tiện hiển thị tháng này tháng kia, nếu show toàn thời gian thì điền “all” vào là được !
Các bạn có thể Echo ra hoặc vứt nó vào shortcode, các bạn làm như sau:
Vẫn cái hàm trên, vẫn cái file functions.php
bạn vừa thả code vào, ta triển khai thêm đoạn code:
add_shortcode('top_comment', 'jamviet_top_comment_authors');
Chèn đoạn code trên ở trên cái Function bạn vừa thêm vào. Sửa tiếp trong hàm chỗ return $output
thành echo $output
nữa là ổn. Giờ thì chỉ cần vào đâu đó, Widget chẳng hạn, thả đoạn code [top_comment]
vào là xong !
Nếu thả shortcode vào Widget mà không thấy nó bảo gì, hãy thêm đoạn code sau vào file Functions.php
trong giao diện để bật chế độ chạy shortcode trong Widget:
add_filter('widget_text', 'do_shortcode');
Thế là xong !
Chúc các bạn thành công ! Có gì khó đã có Jam 😀
Bạn ơi có thể ẩn được thời gian của bình luận hay không
Ẩn thời gian bình luận bằng CSS nhé bạn, soi xem thẻ của nó là gì sau đó ẩn thôi !
hiện bình luận facebook không anh hay là chỉ hiện bình luận wp thôi
Facebook do facebook quản lý, mình không hiện được nó như thế nào trừ khi nó hỗ trợ qua API nha bạn !
Wah. Quá hay. M làm đc rồi. Tks bạn
Em chào anh ạ. A ơi,A có thể hỗ trợ em vấn đề này được không ạ? Em muốn hiển thị kết quả bài làm của người dùng khi người làm hoàn thành ra trang đó (bài làm là nghe khoảng 20 tiếng anh rồi điền từ nghe được vào chỗ trống ạ)?.
Em có nút SUBMIT để xem từ đó đúng sai, nút START để nghe, nút NEXT để chuyển từ ạ.
Em định khai báo 1 biến màn tên: $count_num_next = 0; để đếm số lần next, vì từ nào không nghe được sẽ next để nghe từ tiếp theo ạ. Nếu $count_num_next = 20; thì echo $save_results: biến lưu kết quả bài làm ạ. xuất hiện kết quả ra màn hình ạ.Em làm như vậy có được k ạ??
Anh giúp em với ạ, em mới học WP nên chưa năm được nhiều ạ.
Em cảm ơn anh ạ.
Một câu hỏi khó, mình không biết bạn triển khai vấn đề ra sao nên như thế này rất chung chung !
Gợi ý cho bạn, trong WordPress có hàm update_option(); bạn có thể lưu các giá trị như bạn nói vào trong đó, bạn nghiên cứu thêm nhé !
Dạ vâng ạ. Em cảm ơn anh ạ. Thực ra, yêu cầu như sau ạ.
trong trang web có một mục bài tập tên là Spelling Practive , gồm nhiều Level và Lesson khác nhau. Mỗi Level và Lesson có 20 từ để người nghe nghe và điền từ nghe được vào chỗ trống, nếu nhấn submit thì sẽ hiển thị từ đó đúng hay sai ạ. Nhấn Next nếu không nghe được hoặc muốn bỏ qua ạ. Và yêu cầu là Nếu người dùng nhấn chọn Level hay Lesson thì trang đó không được load lại nhưng lưu bài làm của người dùng và hiển thị ra trang web ạ.
Em mới vào thực tập ở công ty được 1 tuần về WP và được chị trưởng nhóm giao cho fix bug này nhưng em mới chỉ nắm khá ổn PHP còn WP thì em chưa vững ạ. Em chỉ mới nghĩ ra ý tưởng đó ạ, còn code như nào thì em vẫn đang tập tành code WP ạ. Em mong anh hỗ trợ em ạ.
Dear bạn, WordPress làm bằng PHP 😀 vấn đề không phải ở WordPress vì bạn có thể viết thêm class vào trong wordpress để xử lý vấn đề của bạn, còn mình chưa rõ là chưa rõ code của bạn ra sao nên không thể tư vấn được, còn cơ chế mình đã hiểu, mình thì sẽ lưu các bài mà người dùng đã xem vào session, đếm khi nào tới bài cuối thì show kết quả…
có hiển thị bình luận facebook nữa không bạn?
Đã làm và đã thành công, thank anh jam nhé 😆
Cảm ơn bạn nha. đang cần đoạn code này