PHP
#wordpress#php#optimization#performance#functions#speed

Отключение лишнего в WordPress: emoji, embeds, ускорение фронта

Оптимизация functions.php: отключение emoji, embeds и других ненужных фич для ускорения загрузки.

Как использовать

  1. Скопируйте нужный фрагмент кода.
  2. Вставьте в свой проект и при необходимости измените под задачу.
  3. Проверьте зависимости и окружение (версии, переменные).

Отключает emoji, embeds, лишние скрипты и стили для ускорения фронтенда. Добавьте в functions.php темы.

// Отключение emoji
remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('wp_print_styles', 'print_emoji_styles');
remove_action('admin_print_scripts', 'print_emoji_detection_script');
remove_action('admin_print_styles', 'print_emoji_styles');

// Отключение embeds (oEmbed)
remove_action('wp_head', 'wp_oembed_add_discovery_links');
remove_action('wp_head', 'wp_oembed_add_host_js');
remove_action('rest_api_init', 'wp_oembed_register_route');
remove_filter('oembed_dataparse', 'wp_filter_oembed_result', 10);

// Отключение лишних скриптов и стилей
remove_action('wp_head', 'wp_generator'); // Версия WordPress
remove_action('wp_head', 'wlwmanifest_link'); // Windows Live Writer
remove_action('wp_head', 'rsd_link'); // Really Simple Discovery
remove_action('wp_head', 'wp_shortlink_wp_head'); // Shortlink

// Отключение REST API для неавторизованных (опционально, может сломать некоторые плагины)
add_filter('rest_authentication_errors', function($result) {
    if (!empty($result)) {
        return $result;
    }
    if (!is_user_logged_in()) {
        return new WP_Error('rest_not_logged_in', 'REST API доступен только авторизованным', ['status' => 401]);
    }
    return $result;
});

// Отключение лишних стилей блока Gutenberg на фронте (если не используете)
function disable_gutenberg_styles() {
    wp_dequeue_style('wp-block-library');
    wp_dequeue_style('wp-block-library-theme');
    wp_dequeue_style('wc-block-style');
}
add_action('wp_enqueue_scripts', 'disable_gutenberg_styles', 100);

// Удаление query string из статических ресурсов (для кеширования)
function remove_query_strings($src) {
    if (strpos($src, '?ver=')) {
        $src = remove_query_arg('ver', $src);
    }
    return $src;
}
add_filter('script_loader_src', 'remove_query_strings', 15);
add_filter('style_loader_src', 'remove_query_strings', 15);

Usage:

Добавьте код в wp-content/themes/your-theme/functions.php. Проверьте сайт после добавления — некоторые плагины могут зависеть от отключённых фич.

Notes:

⚠️ Отключение REST API может сломать некоторые плагины (например, Contact Form 7, WooCommerce). Тестируйте на staging. Отключение Gutenberg стилей — только если не используете блоки на фронте.