向固定链接添加语言前缀

时间:2019-06-22 作者:whynowork

我有一个wordpress网站,有多个翻译,我试图让网站确定要从URL加载的语言,例如,如果https://website.com/sp/about-us, 加载内容https://website.com/about-us, 但用西班牙语。

我试过这样的方法,

add_action(\'plugins_loaded\', \'reroute_url\');
function reroute_url(){
    $languages = [\'sp\'];


    $uri = $_SERVER[\'REQUEST_URI\'];
    $uri_components = explode("/", $uri);
    $language = $uri_components[1];
    if (!in_array($language, $languages)){
        return;
    }
    $_SERVER[\'REQUEST_URI\'] = substr($uri, 1 + strlen($language)).\'?language=\'.$language;
}
基本上正在转换https://website.com/sp/about-ushttps://website.com/about-us?language=sp 因此,我可以使用这个GET参数来更改语言,但最终导致wordpress重定向到https://website.com/about-us?language=sp. 有没有一种方法可以将转换后的url传递给wordpress,而不必重定向到此url?

1 个回复
SO网友:Matthew Brown aka Lord Matt

我不确定这是否是最好的方法,但这是我首先要尝试的。

我将创建一个称为语言的分类法(如类别)。甚至可以使用类别(如果它们不用于其他内容)。你可以构建永久链接example.com/<cat-name>/<page-stub> 因此,将语言作为URL的一部分。我想您可以对自定义分类法执行同样的操作。

这将允许您为每种语言建立单独的归档。

您可以使用register taxonomy 创建新的类类别或类标记分类法。

相关推荐

Altered Media Library URLs

我有一个客户的网站,是在他们离开另一家代理机构后我找到的。该机构使用了一个专有主题和自己的自托管页面生成器,以防止其在除他们之外的任何其他托管环境中更新或编辑。它的另一个方面是重新映射主题的URL并上载目录。因此,例如,代替WP在中查找主题文件http://domain.com/wp-content/themes/…. 它在里面找他们http://domain.com/t/….同样,对于图像上载,也可以在http://domain.com/wp-content/uploads/…, 它在里面找他们http