get_config('theme'); // Si no hay configuraciones en la tabla, intentar desde wp_options // (backward compatibility durante migración) if (empty($settings_cache)) { $settings_cache = get_option('roi_theme_options', array()); } } // Retornar valor específico if (isset($settings_cache[$setting_name])) { return $settings_cache[$setting_name]; } return $default; } /** * Get theme option value (ALIAS for backward compatibility) * * @deprecated 2.0.0 Use roi_get_setting() instead * @param string $option_name The option name * @param mixed $default Default value if option doesn't exist * @return mixed The option value */ function roi_get_option($option_name, $default = '') { return roi_get_setting($option_name, $default); } /** * Check if setting is enabled (checkbox/switch) * * @param string $setting_name The setting name * @return bool True if enabled, false otherwise */ function roi_is_setting_enabled($setting_name) { return (bool) roi_get_setting($setting_name, false); } /** * Check if option is enabled (ALIAS for backward compatibility) * * @deprecated 2.0.0 Use roi_is_setting_enabled() instead * @param string $option_name The option name * @return bool True if enabled, false otherwise */ function roi_is_option_enabled($option_name) { return roi_is_setting_enabled($option_name); } /** * Get breadcrumbs separator * * @return string The separator */ function roi_get_breadcrumb_separator() { return roi_get_setting('breadcrumb_separator', '>'); } /** * Check if breadcrumbs should be shown * * @return bool */ function roi_show_breadcrumbs() { return roi_is_setting_enabled('enable_breadcrumbs'); } /** * Get excerpt length * * @return int The excerpt length */ function roi_get_excerpt_length() { return (int) roi_get_setting('excerpt_length', 55); } /** * Get excerpt more text * * @return string The excerpt more text */ function roi_get_excerpt_more() { return roi_get_setting('excerpt_more', '...'); } /** * Check if related posts should be shown * * @return bool */ function roi_show_related_posts() { return roi_is_setting_enabled('enable_related_posts'); } /** * Get number of related posts to show * * @return int */ function roi_get_related_posts_count() { return (int) roi_get_setting('related_posts_count', 3); } /** * Get related posts taxonomy * * @return string */ function roi_get_related_posts_taxonomy() { return roi_get_setting('related_posts_taxonomy', 'category'); } /** * Get related posts title * * @return string */ function roi_get_related_posts_title() { return roi_get_setting('related_posts_title', __('Related Posts', 'roi-theme')); } /** * Check if specific performance optimization is enabled * * @param string $optimization The optimization name * @return bool */ function roi_is_performance_enabled($optimization) { return roi_is_setting_enabled('performance_' . $optimization); } /** * Get copyright text * * @return string */ function roi_get_copyright_text() { $default = sprintf( __('© %s %s. All rights reserved.', 'roi-theme'), date('Y'), get_bloginfo('name') ); return roi_get_setting('copyright_text', $default); } /** * Get social media links * * @return array Array of social media links */ function roi_get_social_links() { return array( 'facebook' => roi_get_setting('social_facebook', ''), 'twitter' => roi_get_setting('social_twitter', ''), 'instagram' => roi_get_setting('social_instagram', ''), 'linkedin' => roi_get_setting('social_linkedin', ''), 'youtube' => roi_get_setting('social_youtube', ''), ); } /** * Check if comments are enabled for posts * * @return bool */ function roi_comments_enabled_for_posts() { return roi_is_setting_enabled('enable_comments_posts'); } /** * Check if comments are enabled for pages * * @return bool */ function roi_comments_enabled_for_pages() { return roi_is_setting_enabled('enable_comments_pages'); } /** * Get default post layout * * @return string */ function roi_get_default_post_layout() { return roi_get_setting('default_post_layout', 'right-sidebar'); } /** * Get default page layout * * @return string */ function roi_get_default_page_layout() { return roi_get_setting('default_page_layout', 'right-sidebar'); } /** * Get posts per page for archive * * @return int */ function roi_get_archive_posts_per_page() { $custom = (int) roi_get_setting('archive_posts_per_page', 0); return $custom > 0 ? $custom : get_option('posts_per_page', 10); } /** * Check if featured image should be shown on single posts * * @return bool */ function roi_show_featured_image_single() { return roi_is_setting_enabled('show_featured_image_single'); } /** * Check if author box should be shown on single posts * * @return bool */ function roi_show_author_box() { return roi_is_setting_enabled('show_author_box'); } /** * Get date format * * @return string */ function roi_get_date_format() { return roi_get_setting('date_format', 'd/m/Y'); } /** * Get time format * * @return string */ function roi_get_time_format() { return roi_get_setting('time_format', 'H:i'); } /** * Get logo URL * * @return string */ function roi_get_logo_url() { $logo_id = roi_get_setting('site_logo', 0); if ($logo_id) { $logo = wp_get_attachment_image_url($logo_id, 'full'); if ($logo) { return $logo; } } return ''; } /** * Get favicon URL * * @return string */ function roi_get_favicon_url() { $favicon_id = roi_get_setting('site_favicon', 0); if ($favicon_id) { $favicon = wp_get_attachment_image_url($favicon_id, 'full'); if ($favicon) { return $favicon; } } return ''; } /** * Get custom CSS * * @return string */ function roi_get_custom_css() { return roi_get_setting('custom_css', ''); } /** * Get custom JS (header) * * @return string */ function roi_get_custom_js_header() { return roi_get_setting('custom_js_header', ''); } /** * Get custom JS (footer) * * @return string */ function roi_get_custom_js_footer() { return roi_get_setting('custom_js_footer', ''); } /** * Check if lazy loading is enabled * * @return bool */ function roi_is_lazy_loading_enabled() { return roi_is_setting_enabled('enable_lazy_loading'); } /** * Get all theme settings * * @return array */ function roi_get_all_settings() { $db_manager = new ROI_DB_Manager(); $settings = $db_manager->get_config('theme'); // Backward compatibility: si no hay settings en tabla, leer de wp_options if (empty($settings)) { $settings = get_option('roi_theme_options', array()); } return $settings; } /** * Get all theme options (ALIAS for backward compatibility) * * @deprecated 2.0.0 Use roi_get_all_settings() instead * @return array */ function roi_get_all_options() { return roi_get_all_settings(); } /** * Reset theme settings to defaults * * @return bool */ function roi_reset_settings() { $db_manager = new ROI_DB_Manager(); return $db_manager->delete_config('theme'); } /** * Reset theme options to defaults (ALIAS for backward compatibility) * * @deprecated 2.0.0 Use roi_reset_settings() instead * @return bool */ function roi_reset_options() { return roi_reset_settings(); } /** * Check if Table of Contents is enabled * * @return bool */ function roi_is_toc_enabled() { return roi_get_setting('enable_toc', true); } /** * Get minimum headings required to display TOC * * @return int */ function roi_get_toc_min_headings() { return (int) roi_get_setting('toc_min_headings', 2); } /** * Get TOC title * * @return string */ function roi_get_toc_title() { return roi_get_setting('toc_title', __('Table of Contents', 'roi-theme')); }