如何在安装了Polylang的情况下进行“虚拟”翻译(但不安装Polylang)

时间:2018-05-30 作者:William Ode

我有一个叫做“domaines”的CPT(就像法语中的葡萄园)。我的网站有两种语言(法语和英语),配置了Polylangpagesmenus 翻译

我不想在我的“domaine”CPT翻译中使用多段语言功能来避免重复帖子:我想在翻译中使用ACF(模板中的当前语言有一个条件),因为只有3个字段需要翻译(我有1000多篇帖子)。

我想要一个像www.domainame这样的URL。com公司/en/域名/my\\u slugThe www.domainame。com/domaines/my\\u slug已经存在(这是我最初用法语写的帖子)。

有一种方法可以在“/en/”上创建与“/”内容相同的“虚拟”页面?

非常感谢。

2 个回复
最合适的回答,由SO网友:William Ode 整理而成

我找到了一个(我认为)可靠的解决方案:

add_action(\'init\', \'add_my_rewrite_domaines\');
function add_my_rewrite_domaines() {
    global $wp_rewrite;
    $wp_rewrite->add_rule(\'en/vineyards/([^/]+)\',\'index.php?post_type=domaine&domaine=$matches[1]\',\'top\');
    $wp_rewrite->add_rule(\'en/vineyards\',\'index.php?post_type=domaine\',\'top\');
    $wp_rewrite->flush_rules();
}
现在我有了我所有的帖子,几乎是重复的,没有创建任何页面或额外的模板。

在Polylang,我已经停用了我的“域”CPT的翻译。一切正常。

SO网友:Aurovrata

您可以禁用以多段语言翻译您的cpt,并使用翻译后的页面显示您的cpt帖子。在页面模板中,检测the current 语言为英语,使用自定义翻译代码显示这些翻译字段。

我想要一个像www.domainame这样的URL。com/en/

您可以在多段url设置中进行设置,并隐藏默认值/fr/

[编辑]要在页面模板中显示您的cpt,请参见answer. 阅读有关如何构建custom query.

结束

相关推荐

Debugging WP routing

对于一些帖子,我看到404页,即使存在帖子,在WP中使用永久链接决定需要呈现什么对象的位置在哪里?谢谢