feat: disable comments site-wide in admin and frontend
Introduced multiple functions to comprehensively disable comments across the site. This includes removing support for comments and trackbacks from all post types, preventing new comments and pings from being open, hiding existing comments from view, and eliminating comment-related admin menu items, dashboard widgets, and admin bar options. This change aims to streamline the user experience by fully deactivating comments functionalities where they are not needed.
This commit is contained in:
parent
08a84c225d
commit
802cee2067
1 changed files with 56 additions and 0 deletions
|
@ -470,3 +470,59 @@ function add_letter_meta_boxes() {
|
|||
}
|
||||
|
||||
add_action('add_meta_boxes', 'add_letter_meta_boxes');
|
||||
|
||||
function disable_comments_post_types_support() {
|
||||
$post_types = get_post_types();
|
||||
foreach ($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');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
add_action('admin_init', 'disable_comments_post_types_support');
|
||||
|
||||
function disable_comments_status() {
|
||||
return false;
|
||||
}
|
||||
|
||||
add_filter('comments_open', 'disable_comments_status', 20, 2);
|
||||
add_filter('pings_open', 'disable_comments_status', 20, 2);
|
||||
|
||||
function disable_comments_hide_existing_comments($comments) {
|
||||
$comments = array();
|
||||
return $comments;
|
||||
}
|
||||
|
||||
add_filter('comments_array', 'disable_comments_hide_existing_comments', 10, 2);
|
||||
|
||||
function disable_comments_admin_menu() {
|
||||
remove_menu_page('edit-comments.php');
|
||||
}
|
||||
|
||||
add_action('admin_menu', 'disable_comments_admin_menu');
|
||||
|
||||
function disable_comments_admin_menu_redirect() {
|
||||
global $pagenow;
|
||||
if ($pagenow === 'edit-comments.php') {
|
||||
wp_redirect(admin_url());
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
add_action('admin_init', 'disable_comments_admin_menu_redirect');
|
||||
|
||||
function disable_comments_dashboard() {
|
||||
remove_meta_box('dashboard_recent_comments', 'dashboard', 'normal');
|
||||
}
|
||||
|
||||
add_action('admin_init', 'disable_comments_dashboard');
|
||||
|
||||
function disable_comments_admin_bar() {
|
||||
if (is_admin_bar_showing()) {
|
||||
remove_action('admin_bar_menu', 'wp_admin_bar_comments_menu', 60);
|
||||
}
|
||||
}
|
||||
|
||||
add_action('init', 'disable_comments_admin_bar');
|
Loading…
Reference in a new issue