隐藏Featured Image元框失效,排查函数文件仍未解决
我来帮你梳理几个容易被忽略的排查方向,应该能定位问题:
检查钩子优先级是否足够高
禁用特色图片框常用remove_meta_box或remove_post_type_support,如果你的代码钩子优先级太低(默认是10),很可能被主题或其他插件的代码覆盖。试试把优先级设得高一些,比如999,确保你的代码最后执行:// 用remove_meta_box的例子,适配默认文章类型post add_action('admin_menu', 'disable_featured_image_box', 999); function disable_featured_image_box() { remove_meta_box('postimagediv', 'post', 'side'); // 如果是自定义文章类型,把第二个参数换成你的文章类型slug,比如'product' }或者用
remove_post_type_support的写法:add_action('init', 'remove_featured_image_support', 999); function remove_featured_image_support() { remove_post_type_support('post', 'thumbnail'); }确认目标文章类型slug是否正确
如果你要禁用的是自定义文章类型的特色图片框,一定要把代码里的post换成对应的文章类型slug(比如portfolio、product),很多人因为写错slug导致只禁用了默认文章的框,其他类型没生效。排查插件冲突
不少第三方插件(比如SEO工具、自定义字段插件、元框管理插件)会强制重新启用特色图片支持。你可以暂时禁用所有非必需插件,刷新后台看看框是否消失——如果消失了,再逐个启用插件,找到那个“搞事情”的家伙。检查主题/子主题的代码干扰
有些主题会在after_setup_theme钩子中添加特色图片支持,如果你的禁用代码执行时机早于主题的添加代码,就会失效。试试把禁用代码绑定到after_setup_theme,并设置更高优先级:add_action('after_setup_theme', 'remove_featured_image_support', 20); function remove_featured_image_support() { remove_post_type_support('post', 'thumbnail'); }另外如果用了子主题,也要确认父主题有没有相关的重复代码。
验证用户权限差异
部分主题或插件会对管理员账号保留特色图片框的显示权限,试试用普通编辑权限的账号登录后台,看看框是否还存在。如果普通用户看不到,说明你的代码可能需要调整权限判断逻辑。清理浏览器缓存&检查JS错误
有时候浏览器缓存会让后台界面没更新,先按Ctrl+F5硬刷新页面试试。另外打开浏览器控制台(F12),查看是否有JavaScript错误——有些JS代码会动态重新渲染特色图片框,导致禁用代码失效。
内容的提问来源于stack exchange,提问作者Shuler

