Files
xkater/wp-content/mu-plugins/remove-action.php
2026-04-12 18:35:16 +07:00

129 lines
4.5 KiB
PHP

<?php
// Удаление раздела комментариев из админ-панели
function remove_comments_admin_menu() {
remove_menu_page('edit-comments.php');
}
add_action('admin_menu', 'remove_comments_admin_menu');
// Полное отключение системы комментариев
function disable_comments_completely() {
// Удаляем из верхней панели
add_action('wp_before_admin_bar_render', function() {
global $wp_admin_bar;
$wp_admin_bar->remove_menu('comments');
});
// Отключаем поддержку комментариев
add_action('init', function() {
$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', function() {
global $pagenow;
if ($pagenow === 'edit-comments.php') {
wp_redirect(admin_url());
exit;
}
});
// Скрываем мета-бокс комментариев в редакторе записей
add_action('admin_init', function() {
remove_meta_box('dashboard_recent_comments', 'dashboard', 'normal');
});
// Закрываем комментарии для существующих записей
add_action('wp', function() {
if (is_singular()) {
$post_id = get_queried_object_id();
if ($post_id) {
update_post_meta($post_id, '_wp_trash_meta_time', time());
wp_update_post(array(
'ID' => $post_id,
'comment_status' => 'closed'
));
}
}
}, 100);
}
add_action('init', 'disable_comments_completely');
// Полное удаление ненужных пунктов из меню "Внешний вид"
function customize_appearance_menu() {
global $submenu;
// Массив пунктов для удаления
$items_to_remove = array(
'customize.php?return=%2Fwp-admin%2F',
'customize.php?return=%2Fwp-admin%2F&autofocus%5Bcontrol%5D=header_image',
'customize.php?return=%2Fwp-admin%2F&autofocus%5Bcontrol%5D=background_image',
'site-editor.php?p=/pattern',
);
// Удаляем каждый пункт
foreach ($items_to_remove as $item) {
remove_submenu_page('themes.php', $item);
}
// Альтернативный способ - прямое удаление из глобального массива $submenu
if (isset($submenu['themes.php'])) {
foreach ($submenu['themes.php'] as $key => $item) {
if (in_array($item[2], $items_to_remove) ||
strpos($item[0], 'Паттерны') !== false ||
strpos($item[0], 'Настроить') !== false ||
strpos($item[0], 'Заголовок') !== false ||
strpos($item[0], 'Фон') !== false) {
unset($submenu['themes.php'][$key]);
}
}
}
}
add_action('admin_menu', 'customize_appearance_menu', 999);
function complete_cleanup() {
$styles_to_remove = [
'wp-emoji',
'wp-emoji-styles',
'wp-block-library',
'wp-block-library-theme',
'classic-theme-styles',
'global-styles',
'wp-block-archives',
'wp-block-categories',
'wp-block-heading',
'wp-block-latest-comments',
'wp-block-latest-posts',
'wp-block-search',
'wp-block-group',
'wp-block-paragraph',
'global-styles-inline',
'wc-block-style'
];
foreach ($styles_to_remove as $style) {
wp_dequeue_style($style);
wp_deregister_style($style);
}
remove_action('wp_head', 'wp_generator');
remove_action('wp_head', 'rsd_link');
remove_action('wp_head', 'wlwmanifest_link');
remove_action('wp_head', 'wp_shortlink_wp_head');
remove_action('wp_head', 'rest_output_link_wp_head');
}
add_action('wp_enqueue_scripts', 'complete_cleanup', 999);
add_action('wp_head', 'complete_cleanup', 1);
remove_action( 'wp_enqueue_scripts', 'wp_enqueue_global_styles' );
remove_action( 'wp_footer', 'wp_enqueue_global_styles', 1 );
?>