获取页面语言并通过polylang重定向到相同语言页面

问题描述 投票:0回答:3

我正在使用 Polylang 来翻译我的 WordPress 网站,到目前为止一切正常......

默认语言为英语。假设我在法语页面中,有指向另一个页面的链接。我希望它能链接到法语的其他页面。

<a href="http://localhost:8888/lacolmena/a-propos/" class="apropos">

您可能会说只需在链接末尾添加 /fr 即可。问题是,我希望它能够检测当前使用的语言,并将链接重定向到我要访问的页面的等效语言。

使用 Polylang,我成功翻译了所有页面并顺利运行。我有一个功能菜单,可以让我用任何语言去任何我想去的地方。一页中只有一个链接给我带来了问题,因为它不知道它是否可以转到 /fr 或 /en。

所以我需要找到一种方法来获取当前链接是否为 /fr 或 /en 并重定向到等效语言的页面。

基本上:

my page is in french
go to the french contact page

my page is in english
go to the english contact page

我不知道如何做到这一点。我应该使用 PHP 吗?我以前从未使用过 PHP,所以这让我有点害怕,尽管我愿意努力学习它。

我在研究时看到了这个 Polylang 函数,也许它可以是我的算法的开始?

pll_current_language($value);

我不确定我的描述是否清楚..我真的迷失在这里:/

php html wordpress
3个回答
7
投票

设置

<?php get_the_permalink(pll_get_post(get_page_by_path( 'page-slug' )->ID));?>

网址路径

<a href="<?php echo get_the_permalink(pll_get_post(get_page_by_path( '**YOUR PAGE SLUG HERE**' )->ID));?>">URL TEXT</a>


5
投票

尝试

get_the_permalink(pll_get_post(get_page_by_path( 'page-slug' )->ID));

它可能看起来像这样

<a href="<?php echo get_the_permalink(pll_get_post(get_page_by_path( 'contact' )->ID));?>">Contact</a>

0
投票

正在寻找同样的东西。 我使用帖子 ID 来获取不同语言的页面。 我使用的代码:

$languages = pll_the_languages([
    "dropdown" => 1,
    "hide_current" => 0,
    "show_flags" => 1,
    "raw" => 1,
]);

if ($languages) {
    foreach ($languages as $lang) {
        // $url returns the URL of the language, if the page exist in this language.
        $url = get_the_permalink(pll_get_post(get_the_ID(), $lang['locale']));
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.