__('Primary Menu', 'roi-theme'), 'footer' => __('Footer Menu', 'roi-theme'), )); } add_action('after_setup_theme', 'roi_theme_setup'); /** * Set the content width in pixels */ function roi_content_width() { $GLOBALS['content_width'] = apply_filters('roi_content_width', 1200); } add_action('after_setup_theme', 'roi_content_width', 0); /** * ELIMINADO: roi_enqueue_scripts() * * Esta función estaba duplicando la carga de CSS. * El sistema modular en inc/enqueue-scripts.php ya carga style.css como 'roi-main-style' (prioridad 5). * Esta función duplicada lo cargaba otra vez como 'roi-theme-style' (prioridad 10). * * Fecha eliminación: 2025-01-08 * Issue: #128 - Footer Contact Form */ /** * Register Widget Areas */ function roi_register_widget_areas() { // Primary Sidebar register_sidebar(array( 'name' => __('Primary Sidebar', 'roi-theme'), 'id' => 'sidebar-1', 'description' => __('Main sidebar widget area', 'roi-theme'), 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

', )); // Footer Contact Form (Issue #37) - ARRIBA de los 4 widgets register_sidebar(array( 'name' => __('Footer Contact Form', 'roi-theme'), 'id' => 'footer-contact', 'description' => __('Área de contacto arriba de los 4 widgets del footer', 'roi-theme'), 'before_widget' => '', 'before_title' => '

', 'after_title' => '

', )); // Footer Widget Areas for ($i = 1; $i <= 4; $i++) { register_sidebar(array( 'name' => sprintf(__('Footer Column %d', 'roi-theme'), $i), 'id' => 'footer-' . $i, 'description' => sprintf(__('Footer widget area %d', 'roi-theme'), $i), 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

', )); } } add_action('widgets_init', 'roi_register_widget_areas'); /** * Configure locale and date format */ function roi_configure_locale() { // Set locale to es_MX add_filter('locale', function($locale) { return 'es_MX'; }); } add_action('after_setup_theme', 'roi_configure_locale'); /** * Custom date format */ function roi_custom_date_format($format) { return 'd/m/Y'; // Format: day/month/year } add_filter('date_format', 'roi_custom_date_format'); /** * Include modular files */ // Sanitize Functions (load first to avoid redeclaration errors) if (file_exists(get_template_directory() . '/inc/sanitize-functions.php')) { require_once get_template_directory() . '/inc/sanitize-functions.php'; } // Theme Options Helpers (load first as other files may depend on it) if (file_exists(get_template_directory() . '/inc/theme-options-helpers.php')) { require_once get_template_directory() . '/inc/theme-options-helpers.php'; } // Admin Options API (Theme Options) // Cargar solo options-api.php para funciones auxiliares como roi_get_default_options() // theme-options.php está desactivado porque el menú se registra en admin/includes/class-admin-menu.php if (is_admin()) { if (file_exists(get_template_directory() . '/admin/theme-options/options-api.php')) { require_once get_template_directory() . '/admin/theme-options/options-api.php'; } } // Bootstrap Nav Walker if (file_exists(get_template_directory() . '/inc/nav-walker.php')) { require_once get_template_directory() . '/inc/nav-walker.php'; } // Bootstrap and Script Enqueuing if (file_exists(get_template_directory() . '/inc/enqueue-scripts.php')) { require_once get_template_directory() . '/inc/enqueue-scripts.php'; } // Font customizer options if (file_exists(get_template_directory() . '/inc/customizer-fonts.php')) { require_once get_template_directory() . '/inc/customizer-fonts.php'; } // SEO optimizations and Rank Math compatibility if (file_exists(get_template_directory() . '/inc/seo.php')) { require_once get_template_directory() . '/inc/seo.php'; } // Performance optimizations if (file_exists(get_template_directory() . '/inc/performance.php')) { require_once get_template_directory() . '/inc/performance.php'; } // Critical CSS (optional, disabled by default) if (file_exists(get_template_directory() . '/inc/critical-css.php')) { require_once get_template_directory() . '/inc/critical-css.php'; } // Image optimization if (file_exists(get_template_directory() . '/inc/image-optimization.php')) { require_once get_template_directory() . '/inc/image-optimization.php'; } // Template functions if (file_exists(get_template_directory() . '/inc/template-functions.php')) { require_once get_template_directory() . '/inc/template-functions.php'; } // Template tags if (file_exists(get_template_directory() . '/inc/template-tags.php')) { require_once get_template_directory() . '/inc/template-tags.php'; } // Featured image functions if (file_exists(get_template_directory() . '/inc/featured-image.php')) { require_once get_template_directory() . '/inc/featured-image.php'; } // Category badge functions if (file_exists(get_template_directory() . '/inc/category-badge.php')) { require_once get_template_directory() . '/inc/category-badge.php'; } // AdSense delay loading if (file_exists(get_template_directory() . '/inc/adsense-delay.php')) { require_once get_template_directory() . '/inc/adsense-delay.php'; } // Related posts functionality if (file_exists(get_template_directory() . '/inc/related-posts.php')) { require_once get_template_directory() . '/inc/related-posts.php'; } // Related posts configuration options (admin helpers) if (file_exists(get_template_directory() . '/admin/theme-options/related-posts-options.php')) { require_once get_template_directory() . '/admin/theme-options/related-posts-options.php'; } // Table of Contents if (file_exists(get_template_directory() . '/inc/toc.php')) { require_once get_template_directory() . '/inc/toc.php'; } // APU Tables - Funciones para tablas de Análisis de Precios Unitarios (Issue #30) if (file_exists(get_template_directory() . '/inc/apu-tables.php')) { require_once get_template_directory() . '/inc/apu-tables.php'; } // Desactivar búsqueda nativa (Issue #3) if (file_exists(get_template_directory() . '/inc/search-disable.php')) { require_once get_template_directory() . '/inc/search-disable.php'; } // Desactivar comentarios (Issue #4) if (file_exists(get_template_directory() . '/inc/comments-disable.php')) { require_once get_template_directory() . '/inc/comments-disable.php'; } // Social share buttons (Issue #31) if (file_exists(get_template_directory() . '/inc/social-share.php')) { require_once get_template_directory() . '/inc/social-share.php'; } // CTA A/B Testing system (Issue #32) if (file_exists(get_template_directory() . '/inc/cta-ab-testing.php')) { require_once get_template_directory() . '/inc/cta-ab-testing.php'; } // CTA Customizer options (Issue #32) if (file_exists(get_template_directory() . '/inc/customizer-cta.php')) { require_once get_template_directory() . '/inc/customizer-cta.php'; } // Admin Panel Module (Phase 1-2: Base Structure) if (file_exists(get_template_directory() . '/admin/init.php')) { require_once get_template_directory() . '/admin/init.php'; }