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>
266 lines
6.1 KiB
PHP
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);
|