Refactor: Reorganizar repositorio - Solo tema WordPress

Se movió el repositorio git desde la raíz de WordPress a la carpeta del tema.
Este commit limpia todos los archivos de WordPress del historial de tracking
y mantiene únicamente los archivos del tema apus-theme.

Cambios:
- Eliminado tracking de archivos de WordPress core
- Mantenido solo archivos del tema (97 archivos)
- Actualizado .gitignore para excluir carpetas de desarrollo
- Historial de commits anteriores se mantiene intacto

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
FrankZamora
2025-11-09 09:15:47 -06:00
parent 861267e699
commit bbc6ed2c98
24226 changed files with 97 additions and 5056856 deletions

617
inc/enqueue-scripts.php Normal file
View File

@@ -0,0 +1,617 @@
<?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() {
// Google Fonts - Poppins (según documentación INTRODUCCION.md)
wp_enqueue_style(
'google-fonts-poppins',
'https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap',
array(),
null,
'all'
);
// Fonts CSS local
wp_enqueue_style(
'apus-fonts',
get_template_directory_uri() . '/assets/css/css-global-fonts.css',
array('google-fonts-poppins'),
'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 Icons CSS - LOCAL (Issue #135: CORS bloqueaba CDN)
wp_enqueue_style(
'bootstrap-icons',
get_template_directory_uri() . '/assets/vendor/bootstrap-icons.min.css',
array('apus-bootstrap'),
'1.11.3',
'all'
);
// Variables CSS del Template RDash (NIVEL 1 - BLOQUEANTE - Issue #48)
wp_enqueue_style(
'apus-variables',
get_template_directory_uri() . '/assets/css/css-global-variables.css',
array('apus-bootstrap'),
APUS_VERSION,
'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 main theme stylesheet
* FASE 1 - Este es el archivo CSS principal del tema
*/
function apus_enqueue_main_stylesheet() {
wp_enqueue_style(
'apus-main-style',
get_template_directory_uri() . '/assets/css/style.css',
array('apus-variables'),
'1.0.5', // Arquitectura: Separación de responsabilidades CSS
'all'
);
}
add_action('wp_enqueue_scripts', 'apus_enqueue_main_stylesheet', 5);
/**
* Enqueue FASE 2 CSS - Template RDash Component Styles (Issues #58-64)
*
* Estilos que replican componentes del template RDash
*/
function apus_enqueue_fase2_styles() {
// Hero Section CSS - Gradiente azul (Issue #59)
wp_enqueue_style(
'apus-hero',
get_template_directory_uri() . '/assets/css/componente-hero-section.css',
array('apus-bootstrap'),
filemtime(get_template_directory() . '/assets/css/componente-hero-section.css'),
'all'
);
// Category Badges CSS - Clase genérica (Issue #62)
wp_enqueue_style(
'apus-badges',
get_template_directory_uri() . '/assets/css/css-global-badges.css',
array('apus-bootstrap'),
filemtime(get_template_directory() . '/assets/css/css-global-badges.css'),
'all'
);
// Pagination CSS - Estilos personalizados (Issue #64)
wp_enqueue_style(
'apus-pagination',
get_template_directory_uri() . '/assets/css/css-global-pagination.css',
array('apus-bootstrap'),
filemtime(get_template_directory() . '/assets/css/css-global-pagination.css'),
'all'
);
// Post Content Typography - Solo en posts individuales (Issue #63)
if (is_single()) {
wp_enqueue_style(
'apus-post-content',
get_template_directory_uri() . '/assets/css/componente-post-content.css',
array('apus-bootstrap'),
filemtime(get_template_directory() . '/assets/css/componente-post-content.css'),
'all'
);
// Related Posts CSS - Background gris (Issue #60)
wp_enqueue_style(
'apus-related-posts',
get_template_directory_uri() . '/assets/css/componente-related-posts.css',
array('apus-bootstrap'),
filemtime(get_template_directory() . '/assets/css/componente-related-posts.css'),
'all'
);
}
}
add_action('wp_enqueue_scripts', 'apus_enqueue_fase2_styles', 6);
/**
* Enqueue Global Components CSS
*
* ARQUITECTURA: Componentes globales que aparecen en todas las páginas
* Issue #121 - Separación de componentes del style.css
*
* @since 1.0.7
*/
function apus_enqueue_global_components() {
// Notification Bar CSS - Barra superior (Issue #39)
wp_enqueue_style(
'apus-notification-bar',
get_template_directory_uri() . '/assets/css/componente-top-bar.css',
array('apus-bootstrap'),
filemtime(get_template_directory() . '/assets/css/componente-top-bar.css'),
'all'
);
// Navbar CSS - Navegación principal
wp_enqueue_style(
'apus-navbar',
get_template_directory_uri() . '/assets/css/componente-navbar.css',
array('apus-bootstrap'),
filemtime(get_template_directory() . '/assets/css/componente-navbar.css'),
'all'
);
// Buttons CSS - Botones personalizados (Let's Talk, etc.)
wp_enqueue_style(
'apus-buttons',
get_template_directory_uri() . '/assets/css/componente-boton-lets-talk.css',
array('apus-bootstrap'),
filemtime(get_template_directory() . '/assets/css/componente-boton-lets-talk.css'),
'all'
);
}
add_action('wp_enqueue_scripts', 'apus_enqueue_global_components', 7);
/**
* Enqueue header styles and scripts
*/
function apus_enqueue_header() {
// Header CSS
wp_enqueue_style(
'apus-header',
get_template_directory_uri() . '/assets/css/componente-footer-principal.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 generic tables styles
*
* ARQUITECTURA: Estilos para tablas genéricas en post-content
* Solo en posts individuales
*/
function apus_enqueue_generic_tables() {
// Only enqueue on single posts
if (!is_single()) {
return;
}
// Generic Tables CSS
wp_enqueue_style(
'apus-generic-tables',
get_template_directory_uri() . '/assets/css/css-global-generic-tables.css',
array('apus-bootstrap'),
APUS_VERSION,
'all'
);
}
add_action('wp_enqueue_scripts', 'apus_enqueue_generic_tables', 11);
/**
* Enqueue video iframe styles
*
* ARQUITECTURA: Estilos para videos embebidos (YouTube, Vimeo)
* Solo en posts individuales
*/
function apus_enqueue_video_styles() {
// Only enqueue on single posts
if (!is_single()) {
return;
}
// Video CSS
wp_enqueue_style(
'apus-video',
get_template_directory_uri() . '/assets/css/css-global-video.css',
array('apus-bootstrap'),
APUS_VERSION,
'all'
);
}
add_action('wp_enqueue_scripts', 'apus_enqueue_video_styles', 11);
/**
* Enqueue main JavaScript
*
* ELIMINADO: custom-style.css (Issue #131)
* Motivo: Archivo contenía 95% código duplicado de style.css y otros componentes
* Código único movido a: generic-tables.css, video.css
*/
function apus_enqueue_main_javascript() {
// 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.3', // Cache bust: force remove defer with filter
true // Load in footer
);
// Localize script to pass theme URL to JavaScript
wp_localize_script(
'apus-main-js',
'apusTheme',
array(
'themeUrl' => get_template_directory_uri(),
'ajaxUrl' => admin_url('admin-ajax.php'),
)
);
}
add_action('wp_enqueue_scripts', 'apus_enqueue_main_javascript', 11);
/**
* Remove defer from apus-main-js to make wp_localize_script work
* WordPress 6.3+ adds defer automatically to footer scripts with dependencies
* but wp_localize_script requires synchronous execution
*/
function apus_remove_defer_from_main_js($tag, $handle) {
if ('apus-main-js' === $handle) {
// Remove defer and data-wp-strategy attributes
$tag = str_replace(' defer', '', $tag);
$tag = str_replace(' data-wp-strategy="defer"', '', $tag);
}
return $tag;
}
add_filter('script_loader_tag', 'apus_remove_defer_from_main_js', 20, 2);
/**
* ELIMINADO: apus_enqueue_footer_styles
* Motivo: footer.css NO está documentado - CSS debe estar en style.css
* Ver: theme-documentation/16-componente-footer-contact-form/CSS-ESPECIFICO.md
*/
/**
* Enqueue accessibility styles and scripts
*/
function apus_enqueue_accessibility() {
// Accessibility CSS
wp_enqueue_style(
'apus-accessibility',
get_template_directory_uri() . '/assets/css/css-global-accessibility.css',
array('apus-theme-style'),
APUS_VERSION,
'all'
);
// Accessibility JavaScript
wp_enqueue_script(
'apus-accessibility-js',
get_template_directory_uri() . '/assets/js/accessibility.js',
array('apus-bootstrap-js'),
APUS_VERSION,
array(
'in_footer' => true,
'strategy' => 'defer',
)
);
}
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 theme core styles
*
* ELIMINADO: theme.css (Issue #125)
* Motivo: theme.css contenía código experimental y sobrescrituras Bootstrap no documentadas
* Resultado: 638 líneas eliminadas - TODO el CSS documentado va en style.css
* Fecha: 2025-01-07
*/
function apus_enqueue_theme_styles() {
// Theme Core Styles - ELIMINADO theme.css
// 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/css-global-animations.css',
array('apus-bootstrap'), // Cambiado de 'apus-theme' a 'apus-bootstrap'
'1.0.0',
'all'
);
// Theme Responsive Styles
wp_enqueue_style(
'apus-responsive',
get_template_directory_uri() . '/assets/css/css-global-responsive.css',
array('apus-bootstrap'), // Cambiado de 'apus-theme' a 'apus-bootstrap'
'1.0.0',
'all'
);
// Theme Utilities
wp_enqueue_style(
'apus-utilities',
get_template_directory_uri() . '/assets/css/css-global-utilities.css',
array('apus-bootstrap'), // Cambiado de 'apus-theme' a 'apus-bootstrap'
'1.0.0',
'all'
);
// Print Styles
wp_enqueue_style(
'apus-print',
get_template_directory_uri() . '/assets/css/css-global-print.css',
array(),
'1.0.0',
'print'
);
}
add_action('wp_enqueue_scripts', 'apus_enqueue_theme_styles', 13);
/**
* Enqueue social share styles
*
* HABILITADO: CSS de share buttons debe estar en su propio archivo
* Arquitectura correcta: cada componente tiene su archivo CSS individual
* Ver: wp-content/themes/apus-theme/assets/css/componente-share-buttons.css
*/
function apus_enqueue_social_share_styles() {
// Only enqueue on single posts
if (!is_single()) {
return;
}
// Social Share CSS
wp_enqueue_style(
'apus-social-share',
get_template_directory_uri() . '/assets/css/componente-share-buttons.css',
array('apus-bootstrap'),
APUS_VERSION,
'all'
);
}
add_action('wp_enqueue_scripts', 'apus_enqueue_social_share_styles', 14);
/**
* Enqueue APU Tables styles
*/
function apus_enqueue_apu_tables_styles() {
// APU Tables CSS
wp_enqueue_style(
'apus-tables-apu',
get_template_directory_uri() . '/assets/css/css-tablas-apu.css',
array('apus-bootstrap'),
APUS_VERSION,
'all'
);
}
add_action('wp_enqueue_scripts', 'apus_enqueue_apu_tables_styles', 15);
/**
* Enqueue APU Tables auto-class JavaScript
*
* Este script detecta automáticamente filas especiales en tablas .desglose y .analisis
* y les agrega las clases CSS correspondientes (section-header, subtotal-row, total-row)
*
* Issue #132
*/
function apus_enqueue_apu_tables_autoclass_script() {
// APU Tables Auto-Class JS
wp_enqueue_script(
'apus-apu-tables-autoclass',
get_template_directory_uri() . '/assets/js/apu-tables-auto-class.js',
array(),
APUS_VERSION,
array(
'in_footer' => true,
'strategy' => 'defer',
)
);
}
add_action('wp_enqueue_scripts', 'apus_enqueue_apu_tables_autoclass_script', 15);
/**
* Enqueue CTA A/B Testing styles and scripts
*/
function apus_enqueue_cta_assets() {
// Solo enqueue en posts individuales
if (!is_single()) {
return;
}
// Verificar si el CTA está habilitado
$enable_cta = get_theme_mod('apus_enable_cta', true);
if (!$enable_cta) {
return;
}
// CTA CSS
wp_enqueue_style(
'apus-cta-style',
get_template_directory_uri() . '/assets/css/componente-cta-ab-testing.css',
array('apus-bootstrap'),
APUS_VERSION,
'all'
);
// CTA Tracking JS
wp_enqueue_script(
'apus-cta-tracking',
get_template_directory_uri() . '/assets/js/cta-tracking.js',
array(),
APUS_VERSION,
array(
'in_footer' => true,
'strategy' => 'defer',
)
);
}
add_action('wp_enqueue_scripts', 'apus_enqueue_cta_assets', 16);
/**
* Enqueue CTA Box Sidebar styles (Issue #36)
*/
function apus_enqueue_cta_box_sidebar_assets() {
// Solo enqueue en posts individuales
if (!is_single()) {
return;
}
// CTA Box Sidebar CSS
wp_enqueue_style(
'apus-cta-box-sidebar',
get_template_directory_uri() . '/assets/css/componente-cta-box-sidebar.css',
array('apus-bootstrap'),
filemtime(get_template_directory() . '/assets/css/componente-cta-box-sidebar.css'),
'all'
);
}
add_action('wp_enqueue_scripts', 'apus_enqueue_cta_box_sidebar_assets', 17);
/**
* Enqueue TOC Sidebar styles (only on single posts)
*
* ARQUITECTURA: Cada componente debe tener su propio archivo CSS
* Issue #121 - Separación de responsabilidades CSS
*
* @since 1.0.5
*/
function apus_enqueue_toc_sidebar_assets() {
// Only load on single posts
if (!is_single()) {
return;
}
// TOC Sidebar CSS
wp_enqueue_style(
'apus-toc-sidebar',
get_template_directory_uri() . '/assets/css/componente-sidebar-toc.css',
array('apus-bootstrap'),
filemtime(get_template_directory() . '/assets/css/componente-sidebar-toc.css'),
'all'
);
}
add_action('wp_enqueue_scripts', 'apus_enqueue_toc_sidebar_assets', 18);
/**
* Enqueue Footer Contact Form styles
*
* ARQUITECTURA CORRECTA: Cada componente debe tener su propio archivo CSS
* Footer Contact Form CSS ahora está en su archivo individual
* Ver: wp-content/themes/apus-theme/assets/css/componente-footer-contact-form.css
*/
function apus_enqueue_footer_contact_assets() {
// Footer Contact CSS
wp_enqueue_style(
'apus-footer-contact',
get_template_directory_uri() . '/assets/css/componente-footer-contact-form.css',
array('apus-bootstrap'),
APUS_VERSION,
'all'
);
}
add_action('wp_enqueue_scripts', 'apus_enqueue_footer_contact_assets', 18);