阅读视图

发现新文章,点击刷新页面。

WordPress6.7主题语言包失效(已解决)

刚更新到WordPress 6.7,发现自己主题的语言包失效了。我换了其他几个主题也是一样,我也没看到更新日志有关于语言包的更新啊。怎么回事?又出bug了?


根据秋风于渭水obaby在评论区的反馈,我也测试了其他主题,发现确实是部分主题的问题。正好WPTEA也发现这样的问题,我以为也会帮到我,可没找到相关解决办法。

后来我发现,将load_theme_textdomain函数放在after_setup_theme外就能正常显示翻译,但是会提示“_load_textdomain_just_in_time 的调用方式不正确。 域的翻译加载触发得太早。翻译应该在 init 操作或之后加载.....”,所以这样做也不能解决问题,官方要求必须在init或after_setup_theme内。

wechat_2024 11 13_193628_611.png
load_theme_textdomain函数

经过三四个小时不断的测试,最终给我找到问题所在。所以这是主题的问题,而不是程序的问题。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.

然后我发现这两个位置,少了个符号“!”,因为按照逻辑来说,应该是如果没有什么什么,便注册什么什么。所以加上感叹号,问题就解决了。神奇吧!之前都没有验证过这个问题,却能正常显示。

wechat_2024 11 13_205842_910.png

虽然上面没有错误提示,但经过ZWW大佬一观,就发现问题所在了。其实我也想过,我抄的WordPress的主题代码,他们不至于犯这种错误啊。看到block-styles.php文件里,将这些函数放进init钩子,于是我照葫芦画个瓢,搞定。

wechat_2024 11 13_232023_348.png
版权声明: 本文采用 BY-NC-SA 协议进行授权,如无注明均为原创,转载请注明转自 皇家元林
本文链接: WordPress6.7主题语言包失效(已解决)
❌