我正在为Wordpress多站点创建一个脚本,以允许用户在站点之间切换,即EN、FR、DE。
菜单中的链接结构如下:
<li class="en-link">
<a href="https://example.com" />EN</a>
</li>
<li class="fr-link">
<a href="https://example.com/fr" />FR</a>
</li>
我希望用户能够在这些网站之间来回切换。但这显然不适用于子页面。所以我需要能够获得第一个正斜杠前面的所有内容,并将其应用于这些链接。
这就是我目前拥有的:
jQuery(function ($) {
var currentURL = (document.URL);
var part = currentURL.split("/")[1];
$(".en-link a").attr('href', $(".en-link a").attr('href') + part);
$(".fr-link a").attr('href', $(".fr-link a").attr('href') + part);
});
但无济于事。有什么想法吗?
您可以从JavaScript的内置位置获取路径,window.location.pathname.split('/')[1]
将为您提供路径的第一段,具体取决于您的url,这将是"fr"de";或";en";
这就是我使用jQuery 的原因
$(document).ready(function () {
var trail = window.location.href.substr(window.location.href.lastIndexOf("/")+1);
$(".en-link").find('a').attr('href', $(".en-link").find('a').attr('href') + trail);
$(".fr-link").find('a').attr('href', $(".fr-link").find('a').attr('href') + trail);
});
但也需要针对新闻和媒体部分的子页面进行反击:
jQuery(function ($) {
$(document).ready(function () {
var trail = window.location.href.substr(window.location.href.lastIndexOf("/")+1);
var trailSub = window.location.href.substr(window.location.href.lastIndexOf("/")-5);
if (window.location.href.indexOf("press") != -1) {
$(".en-link").find('a').attr('href', $(".en-link").find('a').attr('href') + trailSub);
$(".fr-link").find('a').attr('href', $(".fr-link").find('a').attr('href') + trailSub);
}
else if (window.location.href.indexOf("media") != -1) {
$(".en-link").find('a').attr('href', $(".en-link").find('a').attr('href') + trailSub);
$(".fr-link").find('a').attr('href', $(".fr-link").find('a').attr('href') + trailSub);
}
else {
$(".en-link").find('a').attr('href', $(".en-link").find('a').attr('href') + trail);
$(".fr-link").find('a').attr('href', $(".fr-link").find('a').attr('href') + trail);
}
});
});
我相信这可以简化,但目前已经缩小了。