寻找具有多语言网站经验的人,也许还有 Polylang 插件。
根据文档,可以使用静态首页:“您必须为每种语言创建一个页面。像往常一样设置翻译,然后转到 WordPress 的“阅读设置”面板。检查“首页显示静态页面”和选择您刚刚创建的页面之一(语言无关紧要)。如果您使用帖子,请对帖子页面执行相同操作。”
我已经完成了所有这些,front-page-de.php
为德语版本创建了第二个模板,我在用于首页的页面的德语版本中使用了这个模板。当我查看我的页面概览时,我看到原始版本和德语版本都被 Wordpress 标记为首页。但是,当我使用语言切换器切换到德语时,该站点继续使用原始front-page.php
.
知道我在这里做错了什么吗?
编辑
创建和后的新front-page.php
代码:nl.php
de.php
<?php
/**
* Template Name: Front Page Template
*/
$currentLanguage = get_bloginfo('language');
// Replace this condition with language code, ex : en-US
if ( $currentLanguage == "nl-NL" )
get_template_part('nl');
$currentLanguage = get_bloginfo('language');
// Replace this condition with language code, ex : en-US
if ( $currentLanguage == "de_DE" )
get_template_part('de');
?>
我想知道我是否必须做一个else
条件,但是当不使用大括号 {} 时,我不知道该怎么做。
我从上面得到了代码:
获取特定文件
虽然这违背了这个函数的目的,但也可以用它加载一个特定的模板文件。您所要做的就是使用一个参数:
<?php get_template_part('template-parts/layout'); ?>
将包含位于主题文件夹根目录下的 template-parts 子目录中的 layout.php。(https://developer.wordpress.org/reference/functions/get_template_part/)
由于新模板不在任何特定的子文件夹中,因此我没有包含目录的“模板部分”部分。
编辑 2
<?php
/**
* Template Name: Front Page Template
*/
$currentLanguage = get_bloginfo('language');
if ( $currentLanguage == "nl-NL" ) {
get_template_part('nl');
}
else {
get_template_part('de');
}
?>
编辑 3
<?php
/**
* Template Name: Front Page Template
*/
$currentLanguage = pll_current_language();
if ( $currentLanguage == "nl-NL" ) {
get_template_part('nl');
}
else {
get_template_part('de');
}
?>