Fase 1: Estructura Base y DI Container - Clean Architecture
COMPLETADO: Fase 1 de la migración a Clean Architecture + POO ## Estructura de Carpetas - ✓ Estructura completa de 4 capas (Domain, Application, Infrastructure, Presentation) - ✓ Carpetas de Use Cases (SaveComponent, GetComponent, DeleteComponent, SyncSchema) - ✓ Estructura de tests (Unit, Integration, E2E) - ✓ Carpetas de schemas y templates ## Composer y Autoloading - ✓ PSR-4 autoloading configurado para ROITheme namespace - ✓ Autoloader optimizado regenerado ## DI Container - ✓ DIContainer implementado con patrón Singleton - ✓ Métodos set(), get(), has() para gestión de servicios - ✓ Getters específicos para ComponentRepository, ValidationService, CacheService - ✓ Placeholders que serán implementados en Fase 5 - ✓ Prevención de clonación y deserialización ## Interfaces - ✓ ComponentRepositoryInterface (Domain) - ✓ ValidationServiceInterface (Application) - ✓ CacheServiceInterface (Application) - ✓ Component entity placeholder (Domain) ## Bootstrap - ✓ functions.php actualizado con carga de Composer autoloader - ✓ Inicialización del DIContainer - ✓ Helper function roi_container() disponible globalmente ## Tests - ✓ 10 tests unitarios para DIContainer (100% cobertura) - ✓ Total: 13 tests unitarios, 28 assertions - ✓ Suite de tests pasando correctamente ## Validación - ✓ Script de validación automatizado (48/48 checks pasados) - ✓ 100% de validaciones exitosas La arquitectura base está lista para la Fase 2. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
/**
|
||||
* Enqueue Bootstrap 5 and Custom Scripts
|
||||
*
|
||||
* @package Apus_Theme
|
||||
* @package ROI_Theme
|
||||
* @since 1.0.0
|
||||
*/
|
||||
|
||||
@@ -14,7 +14,7 @@ if (!defined('ABSPATH')) {
|
||||
/**
|
||||
* Enqueue typography system
|
||||
*/
|
||||
function apus_enqueue_fonts() {
|
||||
function roi_enqueue_fonts() {
|
||||
// Google Fonts - Poppins (según documentación INTRODUCCION.md)
|
||||
wp_enqueue_style(
|
||||
'google-fonts-poppins',
|
||||
@@ -26,7 +26,7 @@ function apus_enqueue_fonts() {
|
||||
|
||||
// Fonts CSS local
|
||||
wp_enqueue_style(
|
||||
'apus-fonts',
|
||||
'roi-fonts',
|
||||
get_template_directory_uri() . '/assets/css/css-global-fonts.css',
|
||||
array('google-fonts-poppins'),
|
||||
'1.0.0',
|
||||
@@ -34,17 +34,17 @@ function apus_enqueue_fonts() {
|
||||
);
|
||||
}
|
||||
|
||||
add_action('wp_enqueue_scripts', 'apus_enqueue_fonts', 1);
|
||||
add_action('wp_enqueue_scripts', 'roi_enqueue_fonts', 1);
|
||||
|
||||
/**
|
||||
* Enqueue Bootstrap 5 styles and scripts
|
||||
*/
|
||||
function apus_enqueue_bootstrap() {
|
||||
function roi_enqueue_bootstrap() {
|
||||
// Bootstrap CSS - with high priority
|
||||
wp_enqueue_style(
|
||||
'apus-bootstrap',
|
||||
'roi-bootstrap',
|
||||
get_template_directory_uri() . '/assets/vendor/bootstrap/css/bootstrap.min.css',
|
||||
array('apus-fonts'),
|
||||
array('roi-fonts'),
|
||||
'5.3.2',
|
||||
'all'
|
||||
);
|
||||
@@ -53,23 +53,23 @@ function apus_enqueue_bootstrap() {
|
||||
wp_enqueue_style(
|
||||
'bootstrap-icons',
|
||||
get_template_directory_uri() . '/assets/vendor/bootstrap-icons.min.css',
|
||||
array('apus-bootstrap'),
|
||||
array('roi-bootstrap'),
|
||||
'1.11.3',
|
||||
'all'
|
||||
);
|
||||
|
||||
// Variables CSS del Template RDash (NIVEL 1 - BLOQUEANTE - Issue #48)
|
||||
wp_enqueue_style(
|
||||
'apus-variables',
|
||||
'roi-variables',
|
||||
get_template_directory_uri() . '/assets/css/css-global-variables.css',
|
||||
array('apus-bootstrap'),
|
||||
APUS_VERSION,
|
||||
array('roi-bootstrap'),
|
||||
ROI_VERSION,
|
||||
'all'
|
||||
);
|
||||
|
||||
// Bootstrap JS Bundle - in footer with defer
|
||||
wp_enqueue_script(
|
||||
'apus-bootstrap-js',
|
||||
'roi-bootstrap-js',
|
||||
get_template_directory_uri() . '/assets/vendor/bootstrap/js/bootstrap.bundle.min.js',
|
||||
array(),
|
||||
'5.3.2',
|
||||
@@ -84,53 +84,53 @@ function apus_enqueue_bootstrap() {
|
||||
wp_deregister_script('jquery');
|
||||
}
|
||||
|
||||
add_action('wp_enqueue_scripts', 'apus_enqueue_bootstrap', 5);
|
||||
add_action('wp_enqueue_scripts', 'roi_enqueue_bootstrap', 5);
|
||||
|
||||
/**
|
||||
* Enqueue main theme stylesheet
|
||||
* FASE 1 - Este es el archivo CSS principal del tema
|
||||
*/
|
||||
function apus_enqueue_main_stylesheet() {
|
||||
function roi_enqueue_main_stylesheet() {
|
||||
wp_enqueue_style(
|
||||
'apus-main-style',
|
||||
'roi-main-style',
|
||||
get_template_directory_uri() . '/assets/css/style.css',
|
||||
array('apus-variables'),
|
||||
array('roi-variables'),
|
||||
'1.0.5', // Arquitectura: Separación de responsabilidades CSS
|
||||
'all'
|
||||
);
|
||||
}
|
||||
|
||||
add_action('wp_enqueue_scripts', 'apus_enqueue_main_stylesheet', 5);
|
||||
add_action('wp_enqueue_scripts', 'roi_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() {
|
||||
function roi_enqueue_fase2_styles() {
|
||||
// Hero Section CSS - Gradiente azul (Issue #59)
|
||||
wp_enqueue_style(
|
||||
'apus-hero',
|
||||
'roi-hero',
|
||||
get_template_directory_uri() . '/assets/css/componente-hero-section.css',
|
||||
array('apus-bootstrap'),
|
||||
array('roi-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',
|
||||
'roi-badges',
|
||||
get_template_directory_uri() . '/assets/css/css-global-badges.css',
|
||||
array('apus-bootstrap'),
|
||||
array('roi-bootstrap'),
|
||||
filemtime(get_template_directory() . '/assets/css/css-global-badges.css'),
|
||||
'all'
|
||||
);
|
||||
|
||||
// Pagination CSS - Estilos personalizados (Issue #64)
|
||||
wp_enqueue_style(
|
||||
'apus-pagination',
|
||||
'roi-pagination',
|
||||
get_template_directory_uri() . '/assets/css/css-global-pagination.css',
|
||||
array('apus-bootstrap'),
|
||||
array('roi-bootstrap'),
|
||||
filemtime(get_template_directory() . '/assets/css/css-global-pagination.css'),
|
||||
'all'
|
||||
);
|
||||
@@ -138,25 +138,25 @@ function apus_enqueue_fase2_styles() {
|
||||
// Post Content Typography - Solo en posts individuales (Issue #63)
|
||||
if (is_single()) {
|
||||
wp_enqueue_style(
|
||||
'apus-post-content',
|
||||
'roi-post-content',
|
||||
get_template_directory_uri() . '/assets/css/componente-post-content.css',
|
||||
array('apus-bootstrap'),
|
||||
array('roi-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',
|
||||
'roi-related-posts',
|
||||
get_template_directory_uri() . '/assets/css/componente-related-posts.css',
|
||||
array('apus-bootstrap'),
|
||||
array('roi-bootstrap'),
|
||||
filemtime(get_template_directory() . '/assets/css/componente-related-posts.css'),
|
||||
'all'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
add_action('wp_enqueue_scripts', 'apus_enqueue_fase2_styles', 6);
|
||||
add_action('wp_enqueue_scripts', 'roi_enqueue_fase2_styles', 6);
|
||||
|
||||
/**
|
||||
* Enqueue Global Components CSS
|
||||
@@ -166,53 +166,53 @@ add_action('wp_enqueue_scripts', 'apus_enqueue_fase2_styles', 6);
|
||||
*
|
||||
* @since 1.0.7
|
||||
*/
|
||||
function apus_enqueue_global_components() {
|
||||
function roi_enqueue_global_components() {
|
||||
// Notification Bar CSS - Barra superior (Issue #39)
|
||||
wp_enqueue_style(
|
||||
'apus-notification-bar',
|
||||
'roi-notification-bar',
|
||||
get_template_directory_uri() . '/assets/css/componente-top-bar.css',
|
||||
array('apus-bootstrap'),
|
||||
array('roi-bootstrap'),
|
||||
filemtime(get_template_directory() . '/assets/css/componente-top-bar.css'),
|
||||
'all'
|
||||
);
|
||||
|
||||
// Navbar CSS - Navegación principal
|
||||
wp_enqueue_style(
|
||||
'apus-navbar',
|
||||
'roi-navbar',
|
||||
get_template_directory_uri() . '/assets/css/componente-navbar.css',
|
||||
array('apus-bootstrap'),
|
||||
array('roi-bootstrap'),
|
||||
filemtime(get_template_directory() . '/assets/css/componente-navbar.css'),
|
||||
'all'
|
||||
);
|
||||
|
||||
// Buttons CSS - Botones personalizados (Let's Talk, etc.)
|
||||
wp_enqueue_style(
|
||||
'apus-buttons',
|
||||
'roi-buttons',
|
||||
get_template_directory_uri() . '/assets/css/componente-boton-lets-talk.css',
|
||||
array('apus-bootstrap'),
|
||||
array('roi-bootstrap'),
|
||||
filemtime(get_template_directory() . '/assets/css/componente-boton-lets-talk.css'),
|
||||
'all'
|
||||
);
|
||||
}
|
||||
|
||||
add_action('wp_enqueue_scripts', 'apus_enqueue_global_components', 7);
|
||||
add_action('wp_enqueue_scripts', 'roi_enqueue_global_components', 7);
|
||||
|
||||
/**
|
||||
* Enqueue header styles and scripts
|
||||
*/
|
||||
function apus_enqueue_header() {
|
||||
function roi_enqueue_header() {
|
||||
// Header CSS
|
||||
wp_enqueue_style(
|
||||
'apus-header',
|
||||
'roi-header',
|
||||
get_template_directory_uri() . '/assets/css/componente-footer-principal.css',
|
||||
array('apus-fonts'),
|
||||
array('roi-fonts'),
|
||||
'1.0.0',
|
||||
'all'
|
||||
);
|
||||
|
||||
// Header JS - with defer strategy
|
||||
wp_enqueue_script(
|
||||
'apus-header-js',
|
||||
'roi-header-js',
|
||||
get_template_directory_uri() . '/assets/js/header.js',
|
||||
array(),
|
||||
'1.0.0',
|
||||
@@ -223,7 +223,7 @@ function apus_enqueue_header() {
|
||||
);
|
||||
}
|
||||
|
||||
add_action('wp_enqueue_scripts', 'apus_enqueue_header', 10);
|
||||
add_action('wp_enqueue_scripts', 'roi_enqueue_header', 10);
|
||||
|
||||
/**
|
||||
* Enqueue generic tables styles
|
||||
@@ -231,7 +231,7 @@ add_action('wp_enqueue_scripts', 'apus_enqueue_header', 10);
|
||||
* ARQUITECTURA: Estilos para tablas genéricas en post-content
|
||||
* Solo en posts individuales
|
||||
*/
|
||||
function apus_enqueue_generic_tables() {
|
||||
function roi_enqueue_generic_tables() {
|
||||
// Only enqueue on single posts
|
||||
if (!is_single()) {
|
||||
return;
|
||||
@@ -239,15 +239,15 @@ function apus_enqueue_generic_tables() {
|
||||
|
||||
// Generic Tables CSS
|
||||
wp_enqueue_style(
|
||||
'apus-generic-tables',
|
||||
'roi-generic-tables',
|
||||
get_template_directory_uri() . '/assets/css/css-global-generic-tables.css',
|
||||
array('apus-bootstrap'),
|
||||
APUS_VERSION,
|
||||
array('roi-bootstrap'),
|
||||
ROI_VERSION,
|
||||
'all'
|
||||
);
|
||||
}
|
||||
|
||||
add_action('wp_enqueue_scripts', 'apus_enqueue_generic_tables', 11);
|
||||
add_action('wp_enqueue_scripts', 'roi_enqueue_generic_tables', 11);
|
||||
|
||||
/**
|
||||
* Enqueue video iframe styles
|
||||
@@ -255,7 +255,7 @@ add_action('wp_enqueue_scripts', 'apus_enqueue_generic_tables', 11);
|
||||
* ARQUITECTURA: Estilos para videos embebidos (YouTube, Vimeo)
|
||||
* Solo en posts individuales
|
||||
*/
|
||||
function apus_enqueue_video_styles() {
|
||||
function roi_enqueue_video_styles() {
|
||||
// Only enqueue on single posts
|
||||
if (!is_single()) {
|
||||
return;
|
||||
@@ -263,15 +263,15 @@ function apus_enqueue_video_styles() {
|
||||
|
||||
// Video CSS
|
||||
wp_enqueue_style(
|
||||
'apus-video',
|
||||
'roi-video',
|
||||
get_template_directory_uri() . '/assets/css/css-global-video.css',
|
||||
array('apus-bootstrap'),
|
||||
APUS_VERSION,
|
||||
array('roi-bootstrap'),
|
||||
ROI_VERSION,
|
||||
'all'
|
||||
);
|
||||
}
|
||||
|
||||
add_action('wp_enqueue_scripts', 'apus_enqueue_video_styles', 11);
|
||||
add_action('wp_enqueue_scripts', 'roi_enqueue_video_styles', 11);
|
||||
|
||||
/**
|
||||
* Enqueue main JavaScript
|
||||
@@ -280,20 +280,20 @@ add_action('wp_enqueue_scripts', 'apus_enqueue_video_styles', 11);
|
||||
* 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() {
|
||||
function roi_enqueue_main_javascript() {
|
||||
// Main JavaScript - navbar scroll effects and interactions
|
||||
wp_enqueue_script(
|
||||
'apus-main-js',
|
||||
'roi-main-js',
|
||||
get_template_directory_uri() . '/assets/js/main.js',
|
||||
array('apus-bootstrap-js'),
|
||||
array('roi-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',
|
||||
'roi-main-js',
|
||||
'roiheme',
|
||||
array(
|
||||
'themeUrl' => get_template_directory_uri(),
|
||||
'ajaxUrl' => admin_url('admin-ajax.php'),
|
||||
@@ -301,25 +301,25 @@ function apus_enqueue_main_javascript() {
|
||||
);
|
||||
}
|
||||
|
||||
add_action('wp_enqueue_scripts', 'apus_enqueue_main_javascript', 11);
|
||||
add_action('wp_enqueue_scripts', 'roi_enqueue_main_javascript', 11);
|
||||
|
||||
/**
|
||||
* Remove defer from apus-main-js to make wp_localize_script work
|
||||
* Remove defer from roi-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) {
|
||||
function roi_remove_defer_from_main_js($tag, $handle) {
|
||||
if ('roi-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);
|
||||
add_filter('script_loader_tag', 'roi_remove_defer_from_main_js', 20, 2);
|
||||
|
||||
/**
|
||||
* ELIMINADO: apus_enqueue_footer_styles
|
||||
* ELIMINADO: roi_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
|
||||
*/
|
||||
@@ -327,22 +327,22 @@ add_filter('script_loader_tag', 'apus_remove_defer_from_main_js', 20, 2);
|
||||
/**
|
||||
* Enqueue accessibility styles and scripts
|
||||
*/
|
||||
function apus_enqueue_accessibility() {
|
||||
function roi_enqueue_accessibility() {
|
||||
// Accessibility CSS
|
||||
wp_enqueue_style(
|
||||
'apus-accessibility',
|
||||
'roi-accessibility',
|
||||
get_template_directory_uri() . '/assets/css/css-global-accessibility.css',
|
||||
array('apus-theme-style'),
|
||||
APUS_VERSION,
|
||||
array('roi-theme-style'),
|
||||
ROI_VERSION,
|
||||
'all'
|
||||
);
|
||||
|
||||
// Accessibility JavaScript
|
||||
wp_enqueue_script(
|
||||
'apus-accessibility-js',
|
||||
'roi-accessibility-js',
|
||||
get_template_directory_uri() . '/assets/js/accessibility.js',
|
||||
array('apus-bootstrap-js'),
|
||||
APUS_VERSION,
|
||||
array('roi-bootstrap-js'),
|
||||
ROI_VERSION,
|
||||
array(
|
||||
'in_footer' => true,
|
||||
'strategy' => 'defer',
|
||||
@@ -350,7 +350,7 @@ function apus_enqueue_accessibility() {
|
||||
);
|
||||
}
|
||||
|
||||
add_action('wp_enqueue_scripts', 'apus_enqueue_accessibility', 15);
|
||||
add_action('wp_enqueue_scripts', 'roi_enqueue_accessibility', 15);
|
||||
|
||||
/**
|
||||
* Enqueue del script de carga retrasada de AdSense
|
||||
@@ -359,14 +359,14 @@ add_action('wp_enqueue_scripts', 'apus_enqueue_accessibility', 15);
|
||||
* (scroll, click, touch, etc.) y cargar los scripts de AdSense solo
|
||||
* en ese momento, mejorando significativamente el rendimiento inicial.
|
||||
*/
|
||||
function apus_enqueue_adsense_loader() {
|
||||
function roi_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');
|
||||
$delay_enabled = roi_get_option('roi_adsense_delay_enabled', '1');
|
||||
|
||||
if ($delay_enabled !== '1') {
|
||||
return;
|
||||
@@ -374,10 +374,10 @@ function apus_enqueue_adsense_loader() {
|
||||
|
||||
// Enqueue del script de carga de AdSense
|
||||
wp_enqueue_script(
|
||||
'apus-adsense-loader',
|
||||
'roi-adsense-loader',
|
||||
get_template_directory_uri() . '/assets/js/adsense-loader.js',
|
||||
array(),
|
||||
APUS_VERSION,
|
||||
ROI_VERSION,
|
||||
array(
|
||||
'in_footer' => true,
|
||||
'strategy' => 'defer',
|
||||
@@ -385,7 +385,7 @@ function apus_enqueue_adsense_loader() {
|
||||
);
|
||||
}
|
||||
|
||||
add_action('wp_enqueue_scripts', 'apus_enqueue_adsense_loader', 10);
|
||||
add_action('wp_enqueue_scripts', 'roi_enqueue_adsense_loader', 10);
|
||||
|
||||
/**
|
||||
* Enqueue theme core styles
|
||||
@@ -395,46 +395,46 @@ add_action('wp_enqueue_scripts', 'apus_enqueue_adsense_loader', 10);
|
||||
* Resultado: 638 líneas eliminadas - TODO el CSS documentado va en style.css
|
||||
* Fecha: 2025-01-07
|
||||
*/
|
||||
function apus_enqueue_theme_styles() {
|
||||
function roi_enqueue_theme_styles() {
|
||||
// Theme Core Styles - ELIMINADO theme.css
|
||||
// wp_enqueue_style(
|
||||
// 'apus-theme',
|
||||
// 'roi-theme',
|
||||
// get_template_directory_uri() . '/assets/css/theme.css',
|
||||
// array('apus-bootstrap'),
|
||||
// array('roi-bootstrap'),
|
||||
// '1.0.0',
|
||||
// 'all'
|
||||
// );
|
||||
|
||||
// Theme Animations
|
||||
wp_enqueue_style(
|
||||
'apus-animations',
|
||||
'roi-animations',
|
||||
get_template_directory_uri() . '/assets/css/css-global-animations.css',
|
||||
array('apus-bootstrap'), // Cambiado de 'apus-theme' a 'apus-bootstrap'
|
||||
array('roi-bootstrap'), // Cambiado de 'roi-theme' a 'roi-bootstrap'
|
||||
'1.0.0',
|
||||
'all'
|
||||
);
|
||||
|
||||
// Theme Responsive Styles
|
||||
wp_enqueue_style(
|
||||
'apus-responsive',
|
||||
'roi-responsive',
|
||||
get_template_directory_uri() . '/assets/css/css-global-responsive.css',
|
||||
array('apus-bootstrap'), // Cambiado de 'apus-theme' a 'apus-bootstrap'
|
||||
array('roi-bootstrap'), // Cambiado de 'roi-theme' a 'roi-bootstrap'
|
||||
'1.0.0',
|
||||
'all'
|
||||
);
|
||||
|
||||
// Theme Utilities
|
||||
wp_enqueue_style(
|
||||
'apus-utilities',
|
||||
'roi-utilities',
|
||||
get_template_directory_uri() . '/assets/css/css-global-utilities.css',
|
||||
array('apus-bootstrap'), // Cambiado de 'apus-theme' a 'apus-bootstrap'
|
||||
array('roi-bootstrap'), // Cambiado de 'roi-theme' a 'roi-bootstrap'
|
||||
'1.0.0',
|
||||
'all'
|
||||
);
|
||||
|
||||
// Print Styles
|
||||
wp_enqueue_style(
|
||||
'apus-print',
|
||||
'roi-print',
|
||||
get_template_directory_uri() . '/assets/css/css-global-print.css',
|
||||
array(),
|
||||
'1.0.0',
|
||||
@@ -442,16 +442,16 @@ function apus_enqueue_theme_styles() {
|
||||
);
|
||||
}
|
||||
|
||||
add_action('wp_enqueue_scripts', 'apus_enqueue_theme_styles', 13);
|
||||
add_action('wp_enqueue_scripts', 'roi_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
|
||||
* Ver: wp-content/themes/roi-theme/assets/css/componente-share-buttons.css
|
||||
*/
|
||||
function apus_enqueue_social_share_styles() {
|
||||
function roi_enqueue_social_share_styles() {
|
||||
// Only enqueue on single posts
|
||||
if (!is_single()) {
|
||||
return;
|
||||
@@ -459,31 +459,31 @@ function apus_enqueue_social_share_styles() {
|
||||
|
||||
// Social Share CSS
|
||||
wp_enqueue_style(
|
||||
'apus-social-share',
|
||||
'roi-social-share',
|
||||
get_template_directory_uri() . '/assets/css/componente-share-buttons.css',
|
||||
array('apus-bootstrap'),
|
||||
APUS_VERSION,
|
||||
array('roi-bootstrap'),
|
||||
ROI_VERSION,
|
||||
'all'
|
||||
);
|
||||
}
|
||||
|
||||
add_action('wp_enqueue_scripts', 'apus_enqueue_social_share_styles', 14);
|
||||
add_action('wp_enqueue_scripts', 'roi_enqueue_social_share_styles', 14);
|
||||
|
||||
/**
|
||||
* Enqueue APU Tables styles
|
||||
*/
|
||||
function apus_enqueue_apu_tables_styles() {
|
||||
function roi_enqueue_apu_tables_styles() {
|
||||
// APU Tables CSS
|
||||
wp_enqueue_style(
|
||||
'apus-tables-apu',
|
||||
'roi-tables-apu',
|
||||
get_template_directory_uri() . '/assets/css/css-tablas-apu.css',
|
||||
array('apus-bootstrap'),
|
||||
APUS_VERSION,
|
||||
array('roi-bootstrap'),
|
||||
ROI_VERSION,
|
||||
'all'
|
||||
);
|
||||
}
|
||||
|
||||
add_action('wp_enqueue_scripts', 'apus_enqueue_apu_tables_styles', 15);
|
||||
add_action('wp_enqueue_scripts', 'roi_enqueue_apu_tables_styles', 15);
|
||||
|
||||
/**
|
||||
* Enqueue APU Tables auto-class JavaScript
|
||||
@@ -493,13 +493,13 @@ add_action('wp_enqueue_scripts', 'apus_enqueue_apu_tables_styles', 15);
|
||||
*
|
||||
* Issue #132
|
||||
*/
|
||||
function apus_enqueue_apu_tables_autoclass_script() {
|
||||
function roi_enqueue_apu_tables_autoclass_script() {
|
||||
// APU Tables Auto-Class JS
|
||||
wp_enqueue_script(
|
||||
'apus-apu-tables-autoclass',
|
||||
'roi-apu-tables-autoclass',
|
||||
get_template_directory_uri() . '/assets/js/apu-tables-auto-class.js',
|
||||
array(),
|
||||
APUS_VERSION,
|
||||
ROI_VERSION,
|
||||
array(
|
||||
'in_footer' => true,
|
||||
'strategy' => 'defer',
|
||||
@@ -507,38 +507,38 @@ function apus_enqueue_apu_tables_autoclass_script() {
|
||||
);
|
||||
}
|
||||
|
||||
add_action('wp_enqueue_scripts', 'apus_enqueue_apu_tables_autoclass_script', 15);
|
||||
add_action('wp_enqueue_scripts', 'roi_enqueue_apu_tables_autoclass_script', 15);
|
||||
|
||||
/**
|
||||
* Enqueue CTA A/B Testing styles and scripts
|
||||
*/
|
||||
function apus_enqueue_cta_assets() {
|
||||
function roi_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);
|
||||
$enable_cta = get_theme_mod('roi_enable_cta', true);
|
||||
if (!$enable_cta) {
|
||||
return;
|
||||
}
|
||||
|
||||
// CTA CSS
|
||||
wp_enqueue_style(
|
||||
'apus-cta-style',
|
||||
'roi-cta-style',
|
||||
get_template_directory_uri() . '/assets/css/componente-cta-ab-testing.css',
|
||||
array('apus-bootstrap'),
|
||||
APUS_VERSION,
|
||||
array('roi-bootstrap'),
|
||||
ROI_VERSION,
|
||||
'all'
|
||||
);
|
||||
|
||||
// CTA Tracking JS
|
||||
wp_enqueue_script(
|
||||
'apus-cta-tracking',
|
||||
'roi-cta-tracking',
|
||||
get_template_directory_uri() . '/assets/js/cta-tracking.js',
|
||||
array(),
|
||||
APUS_VERSION,
|
||||
ROI_VERSION,
|
||||
array(
|
||||
'in_footer' => true,
|
||||
'strategy' => 'defer',
|
||||
@@ -546,12 +546,12 @@ function apus_enqueue_cta_assets() {
|
||||
);
|
||||
}
|
||||
|
||||
add_action('wp_enqueue_scripts', 'apus_enqueue_cta_assets', 16);
|
||||
add_action('wp_enqueue_scripts', 'roi_enqueue_cta_assets', 16);
|
||||
|
||||
/**
|
||||
* Enqueue CTA Box Sidebar styles (Issue #36)
|
||||
*/
|
||||
function apus_enqueue_cta_box_sidebar_assets() {
|
||||
function roi_enqueue_cta_box_sidebar_assets() {
|
||||
// Solo enqueue en posts individuales
|
||||
if (!is_single()) {
|
||||
return;
|
||||
@@ -559,15 +559,15 @@ function apus_enqueue_cta_box_sidebar_assets() {
|
||||
|
||||
// CTA Box Sidebar CSS
|
||||
wp_enqueue_style(
|
||||
'apus-cta-box-sidebar',
|
||||
'roi-cta-box-sidebar',
|
||||
get_template_directory_uri() . '/assets/css/componente-cta-box-sidebar.css',
|
||||
array('apus-bootstrap'),
|
||||
array('roi-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);
|
||||
add_action('wp_enqueue_scripts', 'roi_enqueue_cta_box_sidebar_assets', 17);
|
||||
|
||||
/**
|
||||
* Enqueue TOC Sidebar styles (only on single posts)
|
||||
@@ -577,7 +577,7 @@ add_action('wp_enqueue_scripts', 'apus_enqueue_cta_box_sidebar_assets', 17);
|
||||
*
|
||||
* @since 1.0.5
|
||||
*/
|
||||
function apus_enqueue_toc_sidebar_assets() {
|
||||
function roi_enqueue_toc_sidebar_assets() {
|
||||
// Only load on single posts
|
||||
if (!is_single()) {
|
||||
return;
|
||||
@@ -585,33 +585,33 @@ function apus_enqueue_toc_sidebar_assets() {
|
||||
|
||||
// TOC Sidebar CSS
|
||||
wp_enqueue_style(
|
||||
'apus-toc-sidebar',
|
||||
'roi-toc-sidebar',
|
||||
get_template_directory_uri() . '/assets/css/componente-sidebar-toc.css',
|
||||
array('apus-bootstrap'),
|
||||
array('roi-bootstrap'),
|
||||
filemtime(get_template_directory() . '/assets/css/componente-sidebar-toc.css'),
|
||||
'all'
|
||||
);
|
||||
}
|
||||
|
||||
add_action('wp_enqueue_scripts', 'apus_enqueue_toc_sidebar_assets', 18);
|
||||
add_action('wp_enqueue_scripts', 'roi_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
|
||||
* Ver: wp-content/themes/roi-theme/assets/css/componente-footer-contact-form.css
|
||||
*/
|
||||
function apus_enqueue_footer_contact_assets() {
|
||||
function roi_enqueue_footer_contact_assets() {
|
||||
// Footer Contact CSS
|
||||
wp_enqueue_style(
|
||||
'apus-footer-contact',
|
||||
'roi-footer-contact',
|
||||
get_template_directory_uri() . '/assets/css/componente-footer-contact-form.css',
|
||||
array('apus-bootstrap'),
|
||||
APUS_VERSION,
|
||||
array('roi-bootstrap'),
|
||||
ROI_VERSION,
|
||||
'all'
|
||||
);
|
||||
}
|
||||
|
||||
add_action('wp_enqueue_scripts', 'apus_enqueue_footer_contact_assets', 18);
|
||||
add_action('wp_enqueue_scripts', 'roi_enqueue_footer_contact_assets', 18);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user