Files
roi-theme/wp-content/themes/apus-theme/inc/enqueue-scripts.php
FrankZamora 995707156f Implementar Issues #2-4, #8-13, #16 - Funcionalidades core del tema
Implementación masiva de funcionalidades esenciales del tema apus-theme usando agentes paralelos para máxima eficiencia.

**Issues Completados:**

**Issue #2 - Eliminar bloat de WordPress:**
- inc/performance.php: 13 funciones que remueven emojis, oEmbed, feeds, dashicons, jQuery migrate, XML-RPC, etc.
- Optimización completa del frontend

**Issue #3 - Desactivar búsqueda nativa:**
- inc/search-disable.php: Bloquea queries de búsqueda, widget, formularios
- search.php: Retorna 404 con mensaje amigable

**Issue #4 - Desactivar comentarios:**
- inc/comments-disable.php: 15 funciones que eliminan comentarios de frontend y backend
- comments.php: Template desactivado

**Issue #8 - Footer con 4 widgets:**
- footer.php: Verificado con 4 áreas de widgets y copyright
- assets/css/footer.css: Estilos responsive completos
- Sistema de anchos configurables

**Issue #9 - Jerarquía de plantillas:**
- home.php, category.php, tag.php, author.php, date.php, taxonomy.php, attachment.php
- 7 nuevas plantillas + 12 verificadas
- Template parts completos
- Paginación en todos los archives

**Issue #10 - Imágenes destacadas:**
- inc/featured-image.php: 12 funciones para manejo de featured images
- Sin placeholders, lazy loading, alt text automático
- Responsive con Bootstrap, aspect ratio

**Issue #11 - Badge de categoría:**
- inc/category-badge.php: Badge Bootstrap sobre H1 en single posts
- Excluye "Uncategorized"
- Template tag: apus_display_category_badge()

**Issue #12 - TOC automático:**
- inc/toc.php: Genera TOC desde H2/H3
- assets/css/toc.css: Estilos con numeración CSS counters
- assets/js/toc.js: Smooth scroll, scroll spy, toggle
- Configurable con apus_get_option()

**Issue #13 - Posts relacionados:**
- inc/related-posts.php: Query por categoría, 12 funciones
- inc/admin/related-posts-options.php: Sistema de configuración
- assets/css/related-posts.css: Cards responsive
- Hook automático en single posts

**Issue #16 - AdSense delay:**
- inc/adsense-delay.php: Retardo de carga hasta scroll/click
- assets/js/adsense-loader.js: Detecta interacciones
- Mejora FID y TBT para Core Web Vitals

**Archivos Modificados:**
- functions.php: Includes de nuevos módulos, removido feed support
- single.php: Integración de category badge
- inc/enqueue-scripts.php: Enqueue de nuevos assets
- inc/theme-options-helpers.php: Helper functions para TOC

**Archivos Creados:**
- 7 nuevas plantillas WordPress
- 3 nuevos módulos inc/ (comments-disable, search-disable)
- 8 reportes de documentación .md

**Estadísticas:**
- Total funciones PHP: 60+ nuevas funciones
- Líneas de código: 2,500+ líneas
- Archivos nuevos: 18
- Archivos modificados: 9

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 16:53:31 -06:00

266 lines
6.1 KiB
PHP

<?php
/**
* Enqueue Bootstrap 5 and Custom Scripts
*
* @package Apus_Theme
* @since 1.0.0
*/
// Exit if accessed directly
if (!defined('ABSPATH')) {
exit;
}
/**
* Enqueue typography system
*/
function apus_enqueue_fonts() {
wp_enqueue_style(
'apus-fonts',
get_template_directory_uri() . '/assets/css/fonts.css',
array(),
'1.0.0',
'all'
);
}
add_action('wp_enqueue_scripts', 'apus_enqueue_fonts', 1);
/**
* Enqueue Bootstrap 5 styles and scripts
*/
function apus_enqueue_bootstrap() {
// Bootstrap CSS - with high priority
wp_enqueue_style(
'apus-bootstrap',
get_template_directory_uri() . '/assets/vendor/bootstrap/css/bootstrap.min.css',
array('apus-fonts'),
'5.3.2',
'all'
);
// Bootstrap JS Bundle - in footer with defer
wp_enqueue_script(
'apus-bootstrap-js',
get_template_directory_uri() . '/assets/vendor/bootstrap/js/bootstrap.bundle.min.js',
array(),
'5.3.2',
array(
'in_footer' => true,
'strategy' => 'defer',
)
);
// Dequeue jQuery if it was enqueued
wp_dequeue_script('jquery');
wp_deregister_script('jquery');
}
add_action('wp_enqueue_scripts', 'apus_enqueue_bootstrap', 5);
/**
* Enqueue header styles and scripts
*/
function apus_enqueue_header() {
// Header CSS
wp_enqueue_style(
'apus-header',
get_template_directory_uri() . '/assets/css/header.css',
array('apus-fonts'),
'1.0.0',
'all'
);
// Header JS - with defer strategy
wp_enqueue_script(
'apus-header-js',
get_template_directory_uri() . '/assets/js/header.js',
array(),
'1.0.0',
array(
'in_footer' => true,
'strategy' => 'defer',
)
);
}
add_action('wp_enqueue_scripts', 'apus_enqueue_header', 10);
/**
* Enqueue custom styles and main JavaScript
*/
function apus_enqueue_custom_assets() {
// Custom Styles - navbar animations and theme components
wp_enqueue_style(
'apus-custom-style',
get_template_directory_uri() . '/assets/css/custom-style.css',
array('apus-bootstrap'),
'1.0.0',
'all'
);
// Main JavaScript - navbar scroll effects and interactions
wp_enqueue_script(
'apus-main-js',
get_template_directory_uri() . '/assets/js/main.js',
array('apus-bootstrap-js'),
'1.0.0',
array(
'in_footer' => true,
'strategy' => 'defer',
)
);
}
add_action('wp_enqueue_scripts', 'apus_enqueue_custom_assets', 11);
/**
* Enqueue footer styles
*/
function apus_enqueue_footer_styles() {
wp_enqueue_style(
'apus-footer',
get_template_directory_uri() . '/assets/css/footer.css',
array('apus-bootstrap'),
APUS_VERSION,
'all'
);
}
add_action('wp_enqueue_scripts', 'apus_enqueue_footer_styles', 12);
/**
* Enqueue accessibility styles
*/
function apus_enqueue_accessibility() {
wp_enqueue_style(
'apus-accessibility',
get_template_directory_uri() . '/assets/css/accessibility.css',
array('apus-theme-style'),
'1.0.0',
'all'
);
}
add_action('wp_enqueue_scripts', 'apus_enqueue_accessibility', 15);
/**
* Enqueue del script de carga retrasada de AdSense
*
* Este script se encarga de detectar la primera interacción del usuario
* (scroll, click, touch, etc.) y cargar los scripts de AdSense solo
* en ese momento, mejorando significativamente el rendimiento inicial.
*/
function apus_enqueue_adsense_loader() {
// Solo ejecutar en frontend
if (is_admin()) {
return;
}
// Verificar si el retardo de AdSense está habilitado
$delay_enabled = apus_get_option('apus_adsense_delay_enabled', '1');
if ($delay_enabled !== '1') {
return;
}
// Enqueue del script de carga de AdSense
wp_enqueue_script(
'apus-adsense-loader',
get_template_directory_uri() . '/assets/js/adsense-loader.js',
array(),
APUS_VERSION,
array(
'in_footer' => true,
'strategy' => 'defer',
)
);
}
add_action('wp_enqueue_scripts', 'apus_enqueue_adsense_loader', 10);
/**
* Enqueue Table of Contents styles and scripts
*/
function apus_enqueue_toc_assets() {
// Only enqueue on single posts
if (!is_single()) {
return;
}
// TOC CSS
wp_enqueue_style(
'apus-toc-style',
get_template_directory_uri() . '/assets/css/toc.css',
array('apus-bootstrap'),
APUS_VERSION,
'all'
);
// TOC JS
wp_enqueue_script(
'apus-toc-script',
get_template_directory_uri() . '/assets/js/toc.js',
array(),
APUS_VERSION,
array(
'in_footer' => true,
'strategy' => 'defer',
)
);
}
add_action('wp_enqueue_scripts', 'apus_enqueue_toc_assets', 10);
/**
* Enqueue theme core styles
*/
function apus_enqueue_theme_styles() {
// Theme Core Styles
wp_enqueue_style(
'apus-theme',
get_template_directory_uri() . '/assets/css/theme.css',
array('apus-bootstrap'),
'1.0.0',
'all'
);
// Theme Animations
wp_enqueue_style(
'apus-animations',
get_template_directory_uri() . '/assets/css/animations.css',
array('apus-theme'),
'1.0.0',
'all'
);
// Theme Responsive Styles
wp_enqueue_style(
'apus-responsive',
get_template_directory_uri() . '/assets/css/responsive.css',
array('apus-theme'),
'1.0.0',
'all'
);
// Theme Utilities
wp_enqueue_style(
'apus-utilities',
get_template_directory_uri() . '/assets/css/utilities.css',
array('apus-theme'),
'1.0.0',
'all'
);
// Print Styles
wp_enqueue_style(
'apus-print',
get_template_directory_uri() . '/assets/css/print.css',
array(),
'1.0.0',
'print'
);
}
add_action('wp_enqueue_scripts', 'apus_enqueue_theme_styles', 13);