first commit

This commit is contained in:
Konstantin
2026-04-12 18:35:16 +07:00
commit 34e098c551
307 changed files with 19544 additions and 0 deletions

View File

@@ -0,0 +1,22 @@
<?php
/**
* Register ACF options pages.
*/
if (!defined('ABSPATH')) {
exit;
}
add_action('acf/init', function () {
if (!function_exists('acf_add_options_page')) {
return;
}
acf_add_options_page([
'page_title' => 'Site Settings',
'menu_title' => 'Site Settings',
'menu_slug' => 'site-settings',
'capability' => 'edit_posts',
'redirect' => false,
]);
});

View File

@@ -0,0 +1,52 @@
<?php
/**
* Reduce wp-admin latency in local Docker environments without outbound internet.
*/
if (!defined('ABSPATH')) {
exit;
}
if (function_exists('wp_get_environment_type') && wp_get_environment_type() !== 'local') {
return;
}
add_action('init', function () {
remove_action('admin_init', '_maybe_update_core');
remove_action('admin_init', '_maybe_update_plugins');
remove_action('admin_init', '_maybe_update_themes');
wp_clear_scheduled_hook('wp_version_check');
wp_clear_scheduled_hook('wp_update_plugins');
wp_clear_scheduled_hook('wp_update_themes');
}, 1);
add_filter('pre_site_transient_update_core', function () {
return (object) [
'updates' => [],
'last_checked' => time(),
'version_checked' => get_bloginfo('version'),
];
});
add_filter('pre_site_transient_update_plugins', function () {
return (object) [
'last_checked' => time(),
'checked' => [],
'response' => [],
'no_update' => [],
'translations' => [],
];
});
add_filter('pre_site_transient_update_themes', function () {
return (object) [
'last_checked' => time(),
'checked' => [],
'response' => [],
'no_update' => [],
'translations' => [],
];
});
add_filter('automatic_updater_disabled', '__return_true');

View File

@@ -0,0 +1,129 @@
<?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 );
?>