diff --git a/functions.php b/functions.php index 3d55e3f..735dd9a 100644 --- a/functions.php +++ b/functions.php @@ -6,7 +6,7 @@ */ // Constantes de versão para cache busting -define('THEME_VERSION', '1.0.1'); +define('THEME_VERSION', '1.0.5'); /** * Theme setup @@ -38,10 +38,12 @@ add_action('after_setup_theme', 'martinsevieira_setup'); function martinsevieira_scripts() { // Styles wp_enqueue_style('martinsevieira-style', get_stylesheet_uri(), array(), THEME_VERSION); - wp_enqueue_style('font-awesome', 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css', array(), '6.4.0'); + wp_enqueue_style('font-awesome', 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css', array(), '6.4.0', 'all'); + wp_style_add_data('font-awesome', 'display', 'swap'); - // Scripts + // Scripts com defer para melhor performance wp_enqueue_script('martinsevieira-script', get_template_directory_uri() . '/js/main.js', array(), THEME_VERSION, true); + wp_script_add_data('martinsevieira-script', 'defer', true); // Localizar script para AJAX wp_localize_script('martinsevieira-script', 'ajaxData', array( @@ -51,6 +53,53 @@ function martinsevieira_scripts() { } add_action('wp_enqueue_scripts', 'martinsevieira_scripts'); +/** + * Adicionar atributos async/defer aos scripts + */ +function add_defer_attribute($tag, $handle) { + if ('martinsevieira-script' === $handle) { + return str_replace(' src', ' defer src', $tag); + } + return $tag; +} +add_filter('script_loader_tag', 'add_defer_attribute', 10, 2); + +/** + * Otimizar carregamento de fontes + */ +function add_font_preconnect() { + echo ''; + echo ''; +} +add_action('wp_head', 'add_font_preconnect', 1); + +/** + * Remover jQuery Migrate para melhor performance + */ +function remove_jquery_migrate($scripts) { + if (!is_admin() && isset($scripts->registered['jquery'])) { + $script = $scripts->registered['jquery']; + if ($script->deps) { + $script->deps = array_diff($script->deps, array('jquery-migrate')); + } + } +} +add_action('wp_default_scripts', 'remove_jquery_migrate'); + +/** + * Desabilitar emojis do WordPress para melhor performance + */ +function disable_emojis() { + remove_action('wp_head', 'print_emoji_detection_script', 7); + remove_action('admin_print_scripts', 'print_emoji_detection_script'); + remove_action('wp_print_styles', 'print_emoji_styles'); + remove_action('admin_print_styles', 'print_emoji_styles'); + remove_filter('the_content_feed', 'wp_staticize_emoji'); + remove_filter('comment_text_rss', 'wp_staticize_emoji'); + remove_filter('wp_mail', 'wp_staticize_emoji_for_email'); +} +add_action('init', 'disable_emojis'); + /** * Register widget areas */ diff --git a/header.php b/header.php index 26267f4..6bffd5d 100644 --- a/header.php +++ b/header.php @@ -14,6 +14,26 @@ $template_uri = get_template_directory_uri(); + + + + + + + + + + + + > @@ -36,14 +56,14 @@ $template_uri = get_template_directory_uri(); -