把语言切到阿拉伯语后文字从右往左排,图标和边距却还按左对齐,导航整体跑到屏幕外面去了。乍看像缓存或者权限的锅,追下去往往不是。
wp_style_add_data('mytheme', 'rtl', 'replace');
# 文件需命名为 style-rtl.css
ls wp-content/themes/mytheme/style-rtl.css
追下去是这么回事:主题只注册了从左到右的主样式,没有准备镜像样式文件,网站程序在镜像语言下不会自动替换,模板里的方向判断分支也没写,布局就停在原方向。
「RTL 样式加载」相关的日志我一般连着看前后五分钟,单看一条报错经常判断不出是哪一步失败。验证用真实数据走一遍,测试数据太干净,边界情况根本碰不到。
能分两步做的操作就别合成一步,中间看一眼返回值,出问题好判断。
具体做法是,先确认当前语言下方向判断函数是不是返回真;给主题补上一份镜像样式文件 并且按约定命名;注册样式的时候显式声明镜像版本的替换关系。
验收就看一点,阿拉伯语页面整体方向翻转正确 导航和图标不再溢出屏幕。
