wordpress 自定义面板显示不了挂件区问题
刚才在写一个wordpress主题,遇到一个问题。注册好的挂件区在控制面板(dashboard)上显示,在自定义面板上却不显示。
查询了下,发现几个老外朋友也遇到了这个问题:
- http://wordpress.stackexchange.com/questions/211881/widgets-panel-not-displaying-in-the-theme-customizer
- http://wordpress.stackexchange.com/questions/149236/widgets-not-displaying-in-theme-customizer/172399
浏览回复,发现并没有答复的人都没有找到问题是怎么产生的,所以都没有解决问题。直到一个哥们说了自己的个例,我才想明白是怎么回事。他说:
I know you asked this a long time ago, but I just had the same issue, and finally figured out the problem. In my functions.php file, I had de-registered jquery (wp_deregister_script('jquery')). This apparently causes the widgets to not work in the customizer, even though my page was still loading jquery (through wp_enqueue_script).
In order to fix the problem (assuming you're having the same problem as me), you need to re-register jquery by calling wp_register_script('jquery', ('url_to_jquery'), false, '1.11.1'[or whatever your jquery version is]).
意思是说:我好像是取消加载jQuery,就出现这个问题,添加jQuery引用这个问题就解决了。
虽然这不是问题的根源。但联想这几个问题,答案就呼之欲出了。
- 后台dashboards可以看到挂件区,可见挂件区注册是没有问题的。
- 为什么后台dashboards可以看到挂件区,而自定义下却看不到呢?一个是不加载页面,一个是加载页面。
- 为什么移除jQuery失效,而添加引用则有效呢?估计是移除jQuery,导致没有依赖,脚本出错,阻断了页面其它脚本的执行
于是我打开浏览器控制台,的确有脚本错误,解决后,自定义面板下的小工具挂件区就显示。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述