无需额外插件定位WordPress警告对应的问题插件
无插件定位
block_categories弃用警告触发源的方法 注:警告中标注的
wp-includes/functions.php第5586行是WordPress核心抛出弃用提示的位置,并非核心代码本身违规使用废弃钩子,实际触发源是挂载到该钩子上的第三方插件/主题代码,不要直接修改核心文件。
方法1:调试日志回溯法(最精准,不用禁用插件)
- 打开站点根目录的
wp-config.php文件,找到调试配置项,替换为以下配置,开启日志记录、关闭前台报错(避免影响正常访客访问):
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_DISPLAY', false ); define( 'WP_DEBUG_LOG', true );
- 访问一次会弹出警告的文章/页面编辑页面,触发报错生成日志。
- 打开路径为
wp-content/debug.log的日志文件,搜索block_categories关键词,对应的报错条目会展示完整的函数调用栈,栈信息里会明确标注调用钩子的文件路径:路径带wp-content/plugins/xxx/的就对应该目录名的插件,路径带wp-content/themes/xxx/就对应正在使用的主题。 - 定位完成后记得把
wp-config.php里的调试项改回false,避免日志持续积累占用空间、泄露站点敏感信息。
方法2:全局文件搜索法(最快,不用改站点配置)
- 用代码编辑器(VS Code、Sublime等)的全局搜索功能,或者服务器面板自带的文件内容搜索功能,选定搜索范围为
wp-content/plugins目录。 - 搜索关键词覆盖以下几种写法(不同开发者代码格式有差异):
add_filter('block_categories'add_filter( 'block_categories'add_filter("block_categories"add_filter( "block_categories"
- 搜索结果对应的插件就是触发警告的来源。如果插件目录下搜不到结果,就把搜索范围扩大到
wp-content/themes目录,排查主题代码的问题。
方法3:逐插件禁用排查法(零代码,适合无文件编辑权限的场景)
- 进入WordPress后台插件列表,全选所有插件执行批量禁用操作,之后刷新文章编辑页,确认警告是否消失:
- 如果警告消失,证明问题来自插件;
- 如果警告还在,证明问题来自当前启用的主题。
- 确认是插件问题后,每次只启用1个插件,每启用一个就刷新编辑页检查警告是否重新出现,警告复现时刚启用的插件就是问题源。
后续修复提示
找到问题插件后优先更新到最新官方版本,多数维护正常的插件早已完成block_categories_all新钩子的适配;如果插件已经停更,可以自行打开对应插件的报错文件,把钩子名从block_categories替换为block_categories_all,注意同步调整回调函数的参数(旧钩子回调接收2个参数,新钩子仅接收1个区块分类数组参数)即可消除警告。
内容的提问来源于stack exchange,提问作者cytsunny
相关产品推荐
相关产品推荐

