$hook_name, 'type' => $type, 'priority' => $priority, 'accepted_args' => $accepted_args, 'auto_detected' => true ]; } } return $hooks; } /** * Obtener hooks críticos que necesitan prioridades específicas */ public static function get_critical_hooks() { return [ 'init' => ['default_priority' => 10, 'description' => 'Inicialización temprana'], 'wp_loaded' => ['default_priority' => 10, 'description' => 'WordPress completamente cargado'], 'template_redirect' => ['default_priority' => 10, 'description' => 'Antes de cargar template'], 'wp_head' => ['default_priority' => 10, 'description' => 'En el head del HTML'], 'wp_footer' => ['default_priority' => 10, 'description' => 'En el footer del HTML'], 'wp_enqueue_scripts' => ['default_priority' => 10, 'description' => 'Encolar scripts frontend'], 'admin_enqueue_scripts' => ['default_priority' => 10, 'description' => 'Encolar scripts admin'], 'the_content' => ['default_priority' => 10, 'description' => 'Filtrar contenido'], 'wp_title' => ['default_priority' => 10, 'description' => 'Filtrar título'] ]; } /** * Calcular prioridad de carga del snippet */ public static function calculate_load_priority($hooks) { if (empty($hooks)) return 10; $critical_hooks = ['init', 'after_setup_theme', 'wp_loaded']; $min_priority = 999; foreach ($hooks as $hook_data) { if (in_array($hook_data['name'], $critical_hooks)) { $min_priority = min($min_priority, $hook_data['priority']); } } return $min_priority === 999 ? 10 : $min_priority; } }