【发布时间】:2017-12-18 08:34:21
【问题描述】:
寻找具有多语言网站和 Polylang 插件经验的人。
根据文档,可以使用静态首页: “您必须为每种语言创建一个页面。像往常一样设置翻译,然后转到 WordPress 的“阅读设置”面板。选中“首页显示静态页面”并选择您刚刚创建的页面之一(语言没有没关系)。如果您使用帖子,请对帖子页面执行相同操作。”
我已经完成了这一切,为德文版创建了第二个模板front-page-de.php,我在用于首页的德文版页面中使用了这个模板。当我查看我的页面概览时,我看到原始版本和德语版本都被 Wordpress 标记为首页。但是,当我使用语言切换器切换到德语时,该站点继续使用原始的front-page.php。
知道我在这里做错了什么吗?
编辑
创建nl.php和de.php后的新front-page.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');
}
?>
【问题讨论】:
标签: wordpress multilingual polylang