
Xóa hoàn toàn bình luận khỏi WordPress
Mới đây trong phiên bản WordPress 6.1.1 mình sử dụng dù bạn tắt tính năng bình luận trong WordPress và xóa rỗng code trong file comments.php
và không để form comment ở cuối mỗi bài viết thì comment từ đâu vẫn lọt được vào phần quản trị bình luận.
Mình quyết định code 1 số đoạn để xóa toàn bộ tính năng bình luận (comment) khỏi WordPress và dưới đây là đoạn code mà bạn có thể sử dụng để xóa hoàn toàn chức năng bình luận khỏi website.
Bạn chỉ cần copy đoạn code và dán vào file functions.php
lưu lại.
add_action( 'admin_init', function () { // Redirect any user trying to access comments page global $pagenow; if ( $pagenow === 'edit-comments.php' ) { wp_redirect( admin_url() ); exit; } // Remove comments metabox from dashboard remove_meta_box( 'dashboard_recent_comments', 'dashboard', 'normal' ); // Disable support for comments and trackbacks in post types foreach ( get_post_types() as $post_type ) { if ( post_type_supports( $post_type, 'comments' ) ) { remove_post_type_support( $post_type, 'comments' ); remove_post_type_support( $post_type, 'trackbacks' ); } } } ); // Close comments on the front-end add_filter( 'comments_open', '__return_false', 20, 2 ); add_filter( 'pings_open', '__return_false', 20, 2 ); // Hide existing comments add_filter( 'comments_array', '__return_empty_array', 10, 2 ); // Remove comments page in menu add_action( 'admin_menu', function () { remove_menu_page( 'edit-comments.php' ); } ); // Remove comments links from admin bar add_action( 'init', function () { if ( is_admin_bar_showing() ) { remove_action( 'admin_bar_menu', 'wp_admin_bar_comments_menu', 60 ); } } );
Ngoài ra như mình nói ở đầu bài, bài có thể mở file comments.php
và xóa toàn bộ code trong đó đi để bỏ hoàn toàn chức năng bình luận trong website WordPress, tuy nhiên cách này không khuyến khích mà thường cấu trúc WordPress sẽ được thêm code ở file single.php
if ( comments_open() || get_comments_number() ) : comments_template(); endif;
Bạn xóa đoạn code này đi là được.
Nếu bạn không muốn xóa hoàn toàn phần comment mà chỉ muốn xóa phần url ở comment form để giảm spam thì có thể sử dụng đoạn code sau:
add_filter('comment_form_default_fields', 'vts_website_remove'); function vts_website_remove($fields){ if(isset($fields['url'])) unset($fields['url']); return $fields; }
1 mẹo để giảm spam nữa là chặn url tự động tạo đường dẫn,
Thêm 1 điều nữa, nếu bạn vẫn muốn giữa lại phần bình luận để hỗ trợ SEO hoặc tăng tương tác thì nên cài thêm plugin Antispam Bee hoặc WP Armour – Honeypot Anti Spam để chặn spam hiệu quả.
Update mới: Có 1 số người hỏi không muốn gỡ hoàn toàn comment mà muốn gỡ mỗi cái Comments topbar thì làm thế nào thì bạn có thể sử dụng đoạn code sau:
function vutruso_remove_admin_bar_links() { global $wp_admin_bar; $wp_admin_bar->remove_menu('comments'); } add_action('wp_before_admin_bar_render', 'vutruso_remove_admin_bar_links');
Hy vọng bài viết sẽ giúp ích được cho nhiều người.
Xin cảm ơn.