- 状态
- 已解决
- 报告针对
- WPML Multilingual CMS 4.6.9
- 解决于
- WPML 4.9.3
- 主题标签
- Bug
问题概述
在某些情况下,使用自定义页面模板时,所选模板未正确应用于翻译页面。
临时解决方法
要确保自定义页面模板正确应用于已翻译的页面,请执行以下步骤:
- 从
wp_posts和icl_translations表中删除相关条目。
- 使用顶部管理栏切换到次要语言,然后转到外观 > 编辑器,找到已翻译的模板并将其删除。
- 在 WPML > 设置 > 页面 URL 中,为别名翻译启用“翻译”(这可确保模板别名包含在翻译中,而不是根据标题自动生成)。
- 打开文件:wp-content/plugins/sitepress-multilingual-cms/classes/full-site-editing/BlockTemplates.php
- 在第 56 行左右,注释掉以下代码行:
$postData['post_name'] = $post->post_name;
- 重新发送模板以进行翻译。
- 翻译模板时,请确保别名正确并包含已翻译的页面或分类法别名。
边界情况
在特定的顺序下,已翻译的页面可能无法与已翻译的模板关联:
- 如果在创建新页面时直接创建新的自定义模板(通过在右侧边栏中选择“模板 > 创建新模板”),则页面及其模板将同时发布。
- 如果启用了自动翻译(“翻译所有内容”),WPML 会同时将页面和模板发送以进行翻译。
- 如果页面翻译在模板翻译之前完成,则要分配的已翻译模板尚不存在。因此,已翻译的页面最终将使用默认模板。
- 要解决此问题,请在模板翻译完成并发布后,重新发送已翻译的页面以进行翻译,以便它能正确接收新翻译的模板。