检索没有GET参数的页面永久链接

时间:2018-07-24 12:59:06

标签: php wordpress url meta-tags hreflang

此多语言站点在末尾生成url参数:

  • example.fr/?lang=zh_CN
  • example.fr/?lang=fr

我想精确调整标题中的hreflang,所以写了:

<link rel="alternate" href="<?php echo get_permalink('') ;?>" hreflang="fr-fr" />

它可以工作,但是随后我得到了url +参数,因此hreflang是flase:

<link rel="alternate" href="https://www.example.fr/domaine/activite/industrie/?lang=fr" hreflang="fr-fr">
<link rel="alternate" href="https://www.example.fr/domaine/activite/industrie/?lang=fr" hreflang="en-fr">

这是我想要的结果:

<link rel="alternate" href="https://www.example.fr/domaine/activite/industrie/?lang=fr" hreflang="fr-fr">
<link rel="alternate" href="https://www.example.fr/domaine/activite/industrie/?lang=en" hreflang="en-fr">

如何分别检索URL和参数?

2 个答案:

答案 0 :(得分:1)

您正在使用get_permalink(),这是第一步。看来WordPress核心功能没有内置任何工具来剥离GET参数,但是您可以执行以下操作:

首先,弄清楚GET参数是什么: $lang = $_GET['lang']

然后,我们需要从永久链接中删除GET参数...这很棘手。最简单的方法是只删除?lang=$lang,但是,如果您有包含查询字符串的永久链接,则可能会导致一些问题。

如果您需要回显的永久链接没有其他查询字符串,那么这就是您可以执行的操作:

$wp_perma = get_permalink( '' );
$lang = $_GET['lang'];

$wp_perma = str_replace( '?lang=' . $_GET['lang'], '', $wp_perma );

echo $wp_perma

答案 1 :(得分:1)

Laken表示感谢,我可以做一点改动就可以实现我想要的:

实施:

<link rel="alternate" href="<?php $wp_perma = get_permalink( '' );
$lang = $_GET['?lang'];
$wp_perma = str_replace( '' . $_GET['?lang'], '', $wp_perma );
echo $wp_perma ;?>" hreflang="x-default" />

结果:

<link rel="alternate" href="https://www.example.fr/domaines/activite/?lang=en" hreflang="x-default">

所以对我来说很好。