// AFFINGER6 / AFFINGER6 EX チェック(複数パターン対応) $affinger_detected = false; $affinger_version = 'Unknown'; // AFFINGER6 EX の検出(複数パターン) if (defined('AFFINGER_VERSION')) { $affinger_detected = true; $affinger_version = AFFINGER_VERSION; } elseif (defined('AFFINGER6_VERSION')) { $affinger_detected = true; $affinger_version = AFFINGER6_VERSION; } elseif (defined('STINGER_VERSION')) { $affinger_detected = true; $affinger_version = STINGER_VERSION; } elseif (function_exists('affinger_setup')) { $affinger_detected = true; $affinger_version = 'Function Detected'; } elseif (function_exists('stinger_setup')) { $affinger_detected = true; $affinger_version = 'STINGER Function Detected'; } elseif (class_exists('STINGER')) { $affinger_detected = true; $affinger_version = 'STINGER Class Detected'; } elseif (file_exists(get_template_directory() . '/functions.php')) { // テンプレートファイルからAFFINGER6を検出 $template_functions = file_get_contents(get_template_directory() . '/functions.php'); if (strpos($template_functions, 'AFFINGER') !== false || strpos($template_functions, 'STINGER') !== false || strpos($template_functions, 'ACTION') !== false) { $affinger_detected = true; $affinger_version = 'File Pattern Detected'; } } // テーマ名からの検出 $current_theme = get_template(); $theme_obj = wp_get_theme(); $theme_name = $theme_obj->get('Name'); $theme_description = $theme_obj->get('Description'); if (strpos(strtolower($current_theme), 'affinger') !== false || strpos(strtolower($current_theme), 'stinger') !== false || strpos(strtolower($current_theme), 'action') !== false || strpos(strtolower($theme_name), 'affinger') !== false || strpos(strtolower($theme_name), 'action') !== false || strpos(strtolower($theme_description), 'affinger') !== false) { $affinger_detected = true; $affinger_version = 'Theme Name: ' . $theme_name; } if (!$affinger_detected) { $errors[] = sprintf( 'AFFINGER6テーマが検出されません。現在のテーマ: %s (%s)', $theme_name, $current_theme ); // デバッグ情報(管理者のみ) if (FERRETS_DEBUG && current_user_can('manage_options')) { $debug_info = [ 'Template Directory' => get_template_directory(), 'Stylesheet Directory' => get_stylesheet_directory(), 'Theme Name' => $theme_name, 'Theme Template' => $current_theme, 'Available Constants' => array_keys(get_defined_constants()), 'Available Functions' => get_defined_functions()['user'] ]; ferrets_log('AFFINGER Detection Debug: ' . wp_json_encode($debug_info), 'debug'); } } else { ferrets_log("AFFINGER detected: {$affinger_version}", 'info'); // AFFINGER検出成功時の定数定義 if (!defined('FERRETS_AFFINGER_DETECTED')) { define('FERRETS_AFFINGER_DETECTED', true); define('FERRETS_AFFINGER_VERSION', $affinger_version); } }