Plesk提示部分项更新失败,WordPress Toolkit报错求助
Plesk WordPress Toolkit更新失败问题排查与解决
问题背景
昨天收到Plesk邮件,提示服务器上的WordPress Toolkit相关更新无法安装。使用的是Ionos托管的Plesk界面,网站可正常运行,但该错误导致更新流程中断。曾怀疑问题与Plesk Web Pro服务器启用mysqli有关,但未找到操作路径,也无法确认关联度。
报错详情
PHP Fatal error: Uncaught TypeError: date(): Argument #2 ($timestamp) must be of type ?int, string given in /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/vendor/wp-cli/cron-command/src/Cron_Event_Command.php:418 Stack trace: #0 /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/vendor/wp-cli/cron-command/src/Cron_Event_Command.php(418): date() #1 [internal function]: Cron_Event_Command::format_event() #2 /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/vendor/wp-cli/cron-command/src/Cron_Event_Command.php(460): array_map() #3 /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/vendor/wp-cli/cron-command/src/Cron_Event_Command.php(366): Cron_Event_Command::get_cron_events() #4 [internal function]: Cron_Event_Command->delete() #5 /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/vendor/wp-cli/wp-cli/php/WP_CLI/Dispatcher/CommandFactory.php(100): call_user_func() #6 [internal function]: WP_CLI\Dispatcher\CommandFactory::WP_CLI\Dispatcher{closure}() #7 /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/vendor/wp-cli/wp-cli/php/WP_CLI/Dispatcher/Subcommand.php(491): call_user_func() #8 /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/vendor/wp-cli/wp-cli/php/WP_CLI/Runner.php(419): WP_CLI\Dispatcher\Subcommand->invoke() #9 /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/vendor/wp-cli/wp-cli/php/class-wp-cli.php(1443): WP_CLI\Runner->run_command() #10 /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/vendor/plesk/wp-cli-toolkit-command/src/Wpt_Cron_Command.php(30): WP_CLI::run_command() #11 [internal function]: Wpt_Cron_Command->reschedule() #12 /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/vendor/wp-cli/wp-cli/php/WP_CLI/Dispatcher/CommandFactory.php(100): call_user_func() #13 [internal function]: WP_CLI\Dispatcher\CommandFactory::WP_CLI\Dispatcher{closure}() #14 /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/vendor/wp-cli/wp-cli/php/WP_CLI/Dispatcher/Subcommand.php(491): call_user_func() #15 /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/vendor/wp-cli/wp-cli/php/WP_CLI/Runner.php(419): WP_CLI\Dispatcher\Subcommand->invoke() #16 /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/vendor/wp-cli/wp-cli/php/WP_CLI/Runner.php(442): WP_CLI\Runner->run_command() #17 /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/vendor/wp-cli/wp-cli/php/WP_CLI/Runner.php(1276): WP_CLI\Runner->run_command_and_exit() #18 /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/vendor/wp-cli/wp-cli/php/WP_CLI/Bootstrap/LaunchRunner.php(28): WP_CLI\Runner->start() #19 /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/vendor/wp-cli/wp-cli/php/bootstrap.php(78): WP_CLI\Bootstrap\LaunchRunner->process() #20 /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/vendor/wp-cli/wp-cli/php/wp-cli.php(32): WP_CLI\bootstrap() #21 /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/vendor/wp-cli/wp-cli/php/boot-fs.php(17): require_once('...') #22 /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/wpt-wp-cli.php(31): require_once('...') #23 {main} thrown in /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/vendor/wp-cli/cron-command/src/Cron_Event_Command.php on line 418 Fatal error: Uncaught TypeError: date(): Argument #2 ($timestamp) must be of type ?int, string given in /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/vendor/wp-cli/cron-command/src/Cron_Event_Command.php:418 Stack trace: #0 /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/vendor/wp-cli/cron-command/src/Cron_Event_Command.php(418): date() #1 [internal function]: Cron_Event_Command::format_event() #2 /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/vendor/wp-cli/cron-command/src/Cron_Event_Command.php(460): array_map() #3 /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/vendor/wp-cli/cron-command/src/Cron_Event_Command.php(366): Cron_Event_Command::get_cron_events() #4 [internal function]: Cron_Event_Command->delete() #5 /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/vendor/wp-cli/wp-cli/php/WP_CLI/Dispatcher/CommandFactory.php(100): call_user_func() #6 [internal function]: WP_CLI\Dispatcher\CommandFactory::WP_CLI\Dispatcher{closure}() #7 /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/vendor/wp-cli/wp-cli/php/WP_CLI/Dispatcher/Subcommand.php(491): call_user_func() #8 /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/vendor/wp-cli/wp-cli/php/WP_CLI/Runner.php(419): WP_CLI\Dispatcher\Subcommand->invoke() #9 /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/vendor/wp-cli/wp-cli/php/class-wp-cli.php(1443): WP_CLI\Runner->run_command() #10 /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/vendor/plesk/wp-cli-toolkit-command/src/Wpt_Cron_Command.php(30): WP_CLI::run_command() #11 [internal function]: Wpt_Cron_Command->reschedule() #12 /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/vendor/wp-cli/wp-cli/php/WP_CLI/Dispatcher/CommandFactory.php(100): call_user_func() #13 [internal function]: WP_CLI\Dispatcher\CommandFactory::WP_CLI\Dispatcher{closure}() #14 /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/vendor/wp-cli/wp-cli/php/WP_CLI/Dispatcher/Subcommand.php(491): call_user_func() #15 /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/vendor/wp-cli/wp-cli/php/WP_CLI/Runner.php(419): WP_CLI\Dispatcher\Subcommand->invoke() #16 /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/vendor/wp-cli/wp-cli/php/WP_CLI/Runner.php(442): WP_CLI\Runner->run_command() #17 /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/vendor/wp-cli/wp-cli/php/WP_CLI/Runner.php(1276): WP_CLI\Runner->run_command_and_exit() #18 /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/vendor/wp-cli/wp-cli/php/WP_CLI/Bootstrap/LaunchRunner.php(28): WP_CLI\Runner->start() #19 /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/vendor/wp-cli/wp-cli/php/bootstrap.php(78): WP_CLI\Bootstrap\LaunchRunner->process() #20 /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/vendor/wp-cli/wp-cli/php/wp-cli.php(32): WP_CLI\bootstrap() #21 /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/vendor/wp-cli/wp-cli/php/boot-fs.php(17): require_once('...') #22 /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/wpt-wp-cli.php(31): require_once('...') #23 {main} thrown in /usr/local/psa/admin/plib/modules/wp-toolkit/vendor/wp-cli/vendor/wp-cli/cron-command/src/Cron_Event_Command.php on line 418 Error: There has been a critical error on this website.Learn more about troubleshooting WordPress. There has been a critical error on this website.
问题原因
核心错误是date()函数接收的时间戳参数类型不匹配:要求整数或null,但实际传入了字符串。这个问题出在WP-CLI的Cron命令模块中,说明目标网站的WordPress定时任务(Cron)里存在异常数据——某个Cron事件的时间戳被存储为字符串格式,导致WP-CLI处理时触发类型错误,进而中断WordPress Toolkit的更新流程。该问题与mysqli无关,无需在此方向排查。
解决办法
1. 修复异常的Cron事件
- 通过Plesk界面操作:登录Plesk后台,找到对应网站的WordPress Toolkit,进入「工具」→「Cron任务」,检查所有任务的下次执行时间,删除或重新创建时间显示异常的任务。
- 通过WP-CLI操作:连接服务器终端,切换到网站根目录后执行:
找到时间格式异常的事件,执行删除命令:wp cron event listwp cron event delete [事件名称] - 通过WordPress插件操作:安装WP Crontrol等可视化Cron管理插件,进入插件后台删除异常的定时任务。
2. 更新WordPress Toolkit及组件
- 在Plesk后台的「扩展」→「已安装扩展」中,找到WordPress Toolkit,点击更新到最新版本。
- 若更新仍失败,尝试先禁用再重新启用WordPress Toolkit扩展,清除缓存后再次尝试更新。
3. 验证PHP版本兼容性
- 检查网站使用的PHP版本,确保与当前WordPress、WordPress Toolkit版本兼容(推荐PHP 7.4及以上版本,避免旧版本的类型严格性问题)。可在Plesk的网站设置中调整PHP版本。
内容的提问来源于stack exchange,提问作者toprobroy
相关产品推荐
相关产品推荐

