刚更新到WordPress 6.7,发现自己主题的语言包失效了。我换了其他几个主题也是一样,我也没看到更新日志有关于语言包的更新啊。怎么回事?又出bug了?
根据秋风于渭水和obaby在评论区的反馈,我也测试了其他主题,发现确实是部分主题的问题。正好WPTEA也发现这样的问题,我以为也会帮到我,可没找到相关解决办法。
后来我发现,将load_theme_textdomain函数放在after_setup_theme外就能正常显示翻译,但是会提示“_load_textdomain_just_in_time 的调用方式不正确。 域的翻译加载触发得太早。翻译应该在 init 操作或之后加载.....”,所以这样做也不能解决问题,官方要求必须在init或after_setup_theme内。
经过三四个小时不断的测试,最终给我找到问题所在。所以这是主题的问题,而不是程序的问题。block-patterns.php和block-styles.php这是我借鉴WordPress默认的主题,因为提交官方主题库必须要有register_block_style和register_block_pattern的存在,即使对我来说一无是处。
RECOMMENDED: No reference to register_block_style was found in the theme. Theme authors are encouraged to implement new block styles as a transition to block themes.
RECOMMENDED: No reference to register_block_pattern was found in the theme. Theme authors are encouraged to implement custom block patterns as a transition to block themes.
然后我发现这两个位置,少了个符号“!”,因为按照逻辑来说,应该是如果没有什么什么,便注册什么什么。所以加上感叹号,问题就解决了。神奇吧!之前都没有验证过这个问题,却能正常显示。
虽然上面没有错误提示,但经过ZWW大佬一观,就发现问题所在了。其实我也想过,我抄的WordPress的主题代码,他们不至于犯这种错误啊。看到block-styles.php文件里,将这些函数放进init钩子,于是我照葫芦画个瓢,搞定。
本文链接: WordPress6.7主题语言包失效(已解决)
恩。嘿嘿。我是不愿意更新。不过锻炼技术能力。
27天前 · 青岛 · Google Chrome 124 Windows 10
@acevs 呵呵,有一种执念,看着更新却不更新会难受…
27天前 · 合肥 · Wordpress App 25 iPhone iOS 18.1
刚更新到6.7,没发现语言包有问题,换了几个主题也问题。嗯,感觉如果不是子主题冲突的话,就是缓存问题
27天前 · · Google Chrome 129 Windows 10
@秋风于渭水 确实,是我主题的问题。
26天前 · 合肥 · Firefox 132 Windows 10
我这玩意儿都自动更新的,貌似没啥问题啊
27天前 · 青岛 · Google Chrome 126 Mac OS X 10.15
@obaby 经过好几个小时的折腾,终于被我找到原因了,是我主题的问题。
26天前 · 合肥 · Firefox 132 Windows 10
感觉不太对,通常 function_exists 是用来检查是否有某个函数a,如果有就调用此函数a,你现在前面加‘!’,变成“如果没有函数a就调用函数a”感觉问题不在这。
26天前 · 广东 · Firefox 132 Windows 10
@zwwooooo 嗯嗯,大佬不是感觉而是专业,一眼看出问题。确实register_block_style和register_block_pattern这两个是内置函数,不是自定义函数。
那只能将这两个函数加在init钩子了。
26天前 · 合肥 · Firefox 132 Windows 10
出现问题到解决问题,这个过程非常奈斯
26天前 · 北京 · Google Chrome 130 Windows 10
@Dabenshi 哎呦,年纪大了,不禁折腾了哦
26天前 · 合肥 · Wordpress App 25 iPhone iOS 18.1
棒。看不懂。
26天前 · 嘉兴 · Google Chrome 122 Windows 10
@织梦岁月 这个我也是九转十八弯才搞定的。
25天前 · 合肥 · Microsoft Edge 130 Windows 10
WordPress和Typecho两个版子都在用着的 Wp自动更新的 没啥大毛病 主要用的还是Ty 之前折腾太多次 身体不好了 后面难维护 都不敢轻易去改动了(是改动太麻烦了 太浪费时间了)哈哈
25天前 · 黔南布依族苗族自治州 · Google Chrome 127 GNU/Linux
@刘郎 ty 还是很稳定的,很长时间才更新一次。我习惯了 wp,还好现在 AI 在这方面解决了不少问题。
25天前 · 合肥 · Wordpress App 25 iPhone iOS 18.1
我刚更新了6.7,出现了部分错误,赶紧回退了
24天前 · 兰州 · Microsoft Edge 119 Windows 10
@段先森 应该是主题或者插件部分代码不适配了吧,可以在本地测试好了,再放上去。
24天前 · 合肥 · Wordpress App 25 iPhone iOS 18.1
确实是wp程序本身的原因,有 文章说是为了契合国际化最佳标准改了核心代码导致。
https://wptea.com/wordpress-6-7-chinese-translation-missing-fix/
22天前 · 漯河 · Google Chrome 93 GNU/Linux
@似水流年 嗯嗯 是的呢,我也看到了。感觉这一变化,使得代码更严谨了。
22天前 · 合肥 · Wordpress App 25 iPhone iOS 18.1