如何强制开发站点显示WP插件升级至trunk或指定版本的提示?
如何在不修改仓库版本号的情况下测试WordPress插件升级
当然可以!这里有几个实用的方法,能让你的开发站点强制显示升级提示,专门用来测试你重写后的插件升级流程,完全不用改动仓库里的版本号:
方法1:用钩子修改更新缓存(最推荐)
WordPress会把插件更新信息存在临时缓存里,我们可以通过site_transient_update_plugins钩子手动给你的插件添加一条更高版本的更新记录,指向trunk或者指定tag。
把下面的代码加到你开发站点的主题functions.php里,或者临时建一个小插件来运行:
add_filter('site_transient_update_plugins', 'force_my_plugin_update_test'); function force_my_plugin_update_test($transient) { // 替换成你的插件主文件路径,比如 'awesome-plugin/awesome-plugin.php' $plugin_main_file = 'your-plugin/your-plugin-main-file.php'; // 配置更新信息:用一个远高于当前版本的假号,让WordPress认为有更新 $update_details = array( 'slug' => 'your-plugin', 'new_version' => '999.999.999', // 测试trunk版本就填trunk的压缩包地址 'package' => 'https://your-repository-url/trunk.zip', 'url' => 'https://your-plugin-info-page-url' ); // 如果要测试特定tag,把上面的package换成tag的压缩包链接就行 // 'package' => 'https://your-repository-url/tags/2.0.0/your-plugin.zip', // 把这条更新信息塞进缓存里 if (isset($transient->response[$plugin_main_file])) { $transient->response[$plugin_main_file] = (object)$update_details; } else { $transient->response[$plugin_main_file] = (object)$update_details; } return $transient; }
添加后刷新插件页面,你就能看到升级提示了。测试完成后一定要删掉这段代码,不然会一直显示假更新。
方法2:用WP-CLI强制安装指定版本
如果你习惯用命令行,WP-CLI的这条命令可以直接强制安装trunk或者指定tag版本,完全跳过版本号检测:
# 安装trunk版本 wp plugin install your-plugin-slug --version=trunk --force # 安装指定tag版本(比如2.0.0) wp plugin install your-plugin-slug --version=2.0.0 --force
这个方法特别适合批量测试,不用改代码也不用碰后台。
方法3:临时修改本地插件版本号
简单粗暴的方式:在你的开发站点上,找到插件主文件开头的Version字段,把它改成一个比仓库trunk/tag版本低的号(比如仓库是1.5,你本地改成1.4)。WordPress会自动检测到仓库里的版本更高,显示升级提示。测试完再改回原来的版本号就行,完全不会影响仓库里的代码。
注意事项
- 一定要在本地开发环境或者 staging 站点测试,别碰生产站点!
- 测试后记得清理更新缓存,可以用WP-CLI命令:
wp transient delete update_plugins,或者在后台「设置-常规」页面随便改个选项保存一下刷新缓存。 - 如果用trunk版本,确保你的仓库trunk目录能生成可正常安装的压缩包(有些版本控制工具需要手动打包,或者仓库支持自动生成zip)。
内容的提问来源于stack exchange,提问作者Igor Yavych
相关产品推荐
相关产品推荐

