20 调试、测试与维护
整理 WP_DEBUG、日志、Query Monitor 思路、错误处理、计划任务和维护清单。
本页关键词
WP_DEBUG
error_log
WP_Error
cron
maintenance
学习目标
- 会开启调试日志
- 会写 error_log
- 会处理 WP_Error
- 会注册计划任务
- 知道维护检查清单
代码使用提醒
本页代码适合用于学习和研究。复制到正式网站前,请先备份,并优先在测试环境验证。
涉及用户输入、后台保存、接口请求、删除操作和邮件发送时,要同时考虑权限、nonce、sanitize、validate 和 escape。
1. wp-config 调试配置
调试
<?php
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
正式站不建议把错误直接显示给访客。
2. 写入调试日志
调试
<?php
error_log( 'Contact form handler started.' );
$data = array( 'name' => 'Test', 'status' => 'ok' );
error_log( print_r( $data, true ) );
临时排查可用 error_log,修复后应清理过多日志。
3. 处理 WP_Error
稳定
<?php
$response = wp_remote_get( 'https://example.com/api' );
if ( is_wp_error( $response ) ) {
error_log( $response->get_error_message() );
return;
}
$body = wp_remote_retrieve_body( $response );
调用接口、插入数据、上传文件时都可能返回 WP_Error。
4. 注册计划任务
维护
<?php
function mysite_schedule_daily_task() {
if ( ! wp_next_scheduled( 'mysite_daily_cleanup' ) ) {
wp_schedule_event( time(), 'daily', 'mysite_daily_cleanup' );
}
}
add_action( 'wp', 'mysite_schedule_daily_task' );
function mysite_daily_cleanup_callback() {
// 每日清理逻辑。
}
add_action( 'mysite_daily_cleanup', 'mysite_daily_cleanup_callback' );
WP-Cron 依赖访问触发,不等同于系统 cron。
5. 停用插件时清理计划任务
维护
<?php
function mysite_clear_scheduled_tasks() {
$timestamp = wp_next_scheduled( 'mysite_daily_cleanup' );
if ( $timestamp ) {
wp_unschedule_event( $timestamp, 'mysite_daily_cleanup' );
}
}
register_deactivation_hook( __FILE__, 'mysite_clear_scheduled_tasks' );
注册了计划任务,就要考虑停用时清理。
6. 维护模式短路输出
维护
<?php
function mysite_simple_maintenance_mode() {
if ( current_user_can( 'manage_options' ) ) {
return;
}
if ( get_option( 'mysite_maintenance_mode' ) ) {
wp_die( '网站维护中,请稍后访问。', 'Maintenance', array( 'response' => 503 ) );
}
}
add_action( 'template_redirect', 'mysite_simple_maintenance_mode' );
维护模式要允许管理员访问,且返回合适状态码。
7. 基础维护检查清单代码注释
维护
<?php
/**
* 每次更新前检查:
* 1. 备份数据库和文件
* 2. 记录当前 WordPress / 主题 / 插件版本
* 3. 在测试环境更新
* 4. 测试首页、表单、购物车、登录、搜索
* 5. 查看 debug.log 是否有新错误
*/
把维护流程写进项目文档,比只靠记忆更可靠。
本页总结
调试维护的重点是日志、错误处理、计划任务和复测流程。任何修复都要以备份和可回滚为前提。