建议上传 PNG 格式的 Logo 图片

设置网站显示名称

启用后,非管理员用户将看到维护页面

维护页面显示的标题

维护页面显示的详细信息

设置维护模式自动开启的时间(留空表示立即开启)

设置维护模式自动关闭的时间(留空表示手动关闭)

'中国标准时间 (UTC+8)', 'Asia/Hong_Kong' => '香港时间 (UTC+8)', 'Asia/Taipei' => '台北时间 (UTC+8)', 'Asia/Tokyo' => '日本标准时间 (UTC+9)', 'Asia/Seoul' => '韩国标准时间 (UTC+9)', 'America/New_York' => '美国东部时间 (UTC-5/-4)', 'America/Los_Angeles' => '美国西部时间 (UTC-8/-7)', 'Europe/London' => '英国时间 (UTC+0/+1)', 'Europe/Paris' => '欧洲中部时间 (UTC+1/+2)', 'UTC' => '协调世界时 (UTC+0)' ); ?>

选择维护时间所使用的时区

" + message + "

"); } // 显示警告信息 function showTimeWarning(fieldId, message) { $("#" + fieldId).after("

" + message + "

"); } // 显示当前时区时间 function updateCurrentTime() { var timezone = $("#maintenance_timezone").val(); var now = new Date(); var timeString = now.toLocaleString("zh-CN", { timeZone: timezone.replace("_", "/"), year: "numeric", month: "2-digit", day: "2-digit", hour: "2-digit", minute: "2-digit", second: "2-digit" }); $("#current-time-display").text("当前时间(" + timezone + "):" + timeString); } // 绑定事件 $("#maintenance_start_time, #maintenance_end_time").on("change", validateMaintenanceTimes); $("#maintenance_timezone").on("change", function() { validateMaintenanceTimes(); updateCurrentTime(); }); // 表单提交验证 $("form").on("submit", function(e) { if (!validateMaintenanceTimes()) { e.preventDefault(); alert("请修正维护时间设置中的错误"); return false; } }); // 添加当前时间显示 if ($("#maintenance_timezone").length) { $("#maintenance_timezone").after("

"); updateCurrentTime(); // 每秒更新时间显示 setInterval(updateCurrentTime, 1000); } }); '); } add_action('admin_enqueue_scripts', 'theme_admin_scripts'); /** * 验证维护模式时间设置 */ function validate_maintenance_times($input) { $start_time = isset($input['maintenance_start_time']) ? $input['maintenance_start_time'] : ''; $end_time = isset($input['maintenance_end_time']) ? $input['maintenance_end_time'] : ''; $timezone = isset($input['maintenance_timezone']) ? $input['maintenance_timezone'] : 'Asia/Shanghai'; // 如果设置了时间,进行验证 if (!empty($start_time) && !empty($end_time)) { try { $tz = new DateTimeZone($timezone); $start_datetime = new DateTime($start_time, $tz); $end_datetime = new DateTime($end_time, $tz); // 检查结束时间是否晚于开始时间 if ($end_datetime <= $start_datetime) { add_settings_error( 'themes_demo', 'maintenance_time_error', '维护结束时间必须晚于开始时间', 'error' ); } // 检查时间格式是否正确 if ($start_datetime->format('Y-m-d\TH:i') !== $start_time) { add_settings_error( 'themes_demo', 'maintenance_start_format_error', '维护开始时间格式不正确', 'error' ); } if ($end_datetime->format('Y-m-d\TH:i') !== $end_time) { add_settings_error( 'themes_demo', 'maintenance_end_format_error', '维护结束时间格式不正确', 'error' ); } } catch (Exception $e) { add_settings_error( 'themes_demo', 'maintenance_timezone_error', '时区设置或时间格式错误:' . $e->getMessage(), 'error' ); } } return $input; } // 添加设置验证钩子 add_filter('pre_update_option_themes_demo', 'validate_maintenance_times'); function theme_settings_page() { ?>

主题设置

维护模式状态监控

"; echo "

当前状态

"; echo "

手动维护模式: " . ($maintenance_mode === '1' ? '已启用' : '已禁用') . "

"; echo "

定时维护模式: " . ($is_scheduled ? '处于维护期间' : '不在维护期间') . "

"; if (!empty($start_time) || !empty($end_time)) { echo "

定时设置

"; if (!empty($start_time)) { echo "

开始时间: " . esc_html($start_time) . "

"; } if (!empty($end_time)) { echo "

结束时间: " . esc_html($end_time) . "

"; } echo "

时区: " . esc_html($timezone) . "

"; // 显示当前时区时间 try { $tz = new DateTimeZone($timezone); $current_time = new DateTime('now', $tz); echo "

当前时间: " . $current_time->format('Y-m-d H:i:s') . "

"; } catch (Exception $e) { echo "

时区错误: " . esc_html($e->getMessage()) . "

"; } } // 显示定时任务状态 echo "

定时任务状态

"; $start_scheduled = wp_next_scheduled('maintenance_mode_start'); $end_scheduled = wp_next_scheduled('maintenance_mode_end'); if ($start_scheduled) { echo "

开始维护任务: " . date('Y-m-d H:i:s', $start_scheduled) . "

"; } else { echo "

开始维护任务: 未安排

"; } if ($end_scheduled) { echo "

结束维护任务: " . date('Y-m-d H:i:s', $end_scheduled) . "

"; } else { echo "

结束维护任务: 未安排

"; } echo "
"; // 添加快速操作按钮 echo "
"; echo "

快速操作

"; echo "

打开测试页面

"; echo "

"; echo "
"; ?>