【发布时间】:2021-06-24 00:31:45
【问题描述】:
我正在开发一个多语言的 WordPress 多站点。它有10多种语言。我创建了一个将在 2 种语言之间重定向的 javascript。为此,我使用了location.pathname 来获取当前页面的 URL。然后我将其拆分以获取最后一个目录名称。我已经使用 if 条件来检查页面的当前 URL 是否为第二语言。
例如,如果我在页面 www.xyz.com/fr/news 上,然后如果我将语言更改为英语。它会将我重定向到www.xyz.com/news。现在的问题是如果我添加第三种语言,我无法弄清楚我应该使用什么条件在不同的语言之间切换。例如,如果我在页面 www.xyz.com/fr/news 上并且我想切换到德语。它应该从www.xyz.com/fr/news 重定向到www.xyz.com/de/news。
每次重定向都应该以请求的语言加载当前页面。
HTML 代码:
<a class="dropdown-item" onclick="myFunction()">English</a>
下面是一个javacript代码sn-p从默认语言切换。
function myFunction() {
document.getElementById("fr").onclick = location.replace(
window.location.origin + "/" + fr" + "/"
);
document.getElementById("de").onclick = location.replace(
window.location.origin + "/" + "de" + "/"
);
}
下面是一个javascript代码sn-p,用于从第二语言切换到默认语言。
function myFunction() {
var pathname = window.location.pathname;
var lang = pathname.split("/")[1];
var page = pathname.split("/")[2];
if ((lang = "fr/")) {
location.replace(window.location.origin + "/" + page);
}
}
【问题讨论】:
-
要拆分路径名,您可以使用单个命令:
let page = window.location.pathname.split("/");这会将 URL 转换为一个数组,您可以稍后将其与 [0]、[1] 等一起使用。跨度> -
@MikedeBie 我已经拆分了 URL 并使用这些部分在 2 种语言之间重定向。我坚持在添加第三种语言时如何重定向。当通过单击触发锚标记但未按预期获得结果时,我正在尝试添加函数和 if-else 语句。
-
如果你想在语言之间切换,你可以使用'Switch'语句。使用从 URL 获得的 2 个字母(“fr”、“en”等)并在 Switch/Case 语句中使用这些字母。
case 'fr': URL = xyz.url/fr一些解释可以在这里找到:(w3schools.com/js/js_switch.asp)
标签: javascript php jquery wordpress wordpress-theming