用 WPML 把中文页复制成英文页,文字翻译正常,容器的 padding 从 80 像素变成 0,两栏布局挤在一起,英文页要重新调一遍。碰到这种情况,我一般先确认改动有没有真的生效。
原因不复杂,复制时只搬了 _elementor_data 的文本节点,响应式设置存在同一个字段的 settings 里,序列化过程中被过滤掉。WPML 的字段同步规则没有把构建器元数据标成可复制。
「Elementor 多语言复制错位」这个问题文档写得含糊,实际行为以当前版本为准,别照旧版本的结论套。改完顺手把文档补一句,省得下次自己重新推一遍。
wp option get wpml_settings # WPML 设置里勾选 _elementor_data # 同时勾选 _elementor_page_settings
监控和日志的时间要对上,时区不一致会多绕很大一圈。临时改动用注释写上日期和原因,过两周自己都记不清为什么这么写。
具体做法是,在 WPML 设置里把 _elementor_data 加入自定义字段复制列表;复制后打开英文页,检查容器的 padding 和断点设置;用构建器的复制样式功能把中文页样式粘过去。
最后用这个标准收尾,英文页容器内边距和两栏宽度与中文页一致,切换语言不跳版。
