WordPress Madara主题执行失败,switch相关continue警告如何解决?
原始错误提示
Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in
问题根因
该警告是PHP 7.3及以上版本的兼容性提示,产生原因是旧版Madara主题的代码中,在switch分支语句内直接使用了continue关键字。根据PHP语法规则,switch属于类循环结构,continue默认作用于当前层级的结构,因此在switch内直接写continue的实际执行效果等价于break,如果开发者原本是想让continue作用于外层包裹switch的循环,就会出现逻辑偏差,因此PHP会抛出该警告。
修复步骤
- 从完整的警告提示末尾,获取报错对应的文件绝对路径和行号,报错文件通常属于Madara主题目录,路径格式为
wp-content/themes/madara/下的功能文件 - 通过FTP或主机后台的文件管理器打开对应文件,跳转到报错行,定位到
switch语句内的continue关键字,根据业务逻辑选择替换方案:- 如果代码逻辑就是要终止当前
switch分支的执行,直接将continue替换为break即可消除警告 - 如果代码逻辑是要跳过
switch外层包裹的for/foreach/while循环的本次迭代,按照提示将continue替换为continue 2即可,若外层嵌套了更多层循环,按需将数字调整为对应的结构层级数
- 如果代码逻辑就是要终止当前
- 保存修改后的文件,刷新站点验证主题功能是否正常、警告是否消失。如果修改后功能异常,将代码回滚后重新判断逻辑选择正确的替换方案即可。
内容的提问来源于stack exchange,提问作者Tayyaba
相关产品推荐
相关产品推荐

