在 Wordpress 的元标记中获取页面 URL 的最佳方法是啥?

Posted

技术标签:

【中文标题】在 Wordpress 的元标记中获取页面 URL 的最佳方法是啥?【英文标题】:What's the best to get page URL in meta tag in Wordpress?在 Wordpress 的元标记中获取页面 URL 的最佳方法是什么? 【发布时间】:2016-01-09 16:30:31 【问题描述】:

到目前为止,我的 header.php 文件中有以下标记

<link rel="alternate" hreflang="en" href="<?php echo $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]; ?>" />

这似乎可行,但对我来说看起来很难看,我想让它尽可能干净。使用the_permalink() 会为每个页面提供完全相同的输出吗?

<link rel="alternate" hreflang="en" href="<?php the_permalink(); ?>" />

【问题讨论】:

javascript怎么样? location.pathname 在服务器端使用 javascript 有什么好处? 只是一个建议,因为您不想使用$_Server 我猜对the_permalink() 不确定 @HarshMakani 不,我真的在问.. 如果我能帮上忙,我不会使用 javascript。所以我只是想知道在 php 上使用 javascript 是否有任何优点/缺点 好吧,正如 vard 在他的回答中所说,在访问您的网址之前,您必须进行一些处理。正如我们所知,wordpress 更新很多(真的很多只是在一夜之间:P)所以更喜欢使用 javascript,它总是会为您提供您想要的精确 url。 javascript也是客户端,因此我猜执行比服务器端更快? 【参考方案1】:

如果您想使用 Wordpress 函数执行此操作,您可以使用 home_url(),将 add_query_arg 的返回值传递给它,与空数组一起使用将返回当前 url 的干净版本。

echo home_url(add_query_arg(array()));

the_permalink 对此不可靠,因为它返回当前帖子的 URL - 然后它将无法在存档页面上正常工作(它将返回循环的第一个帖子的永久链接)。

如果您打算多次使用它,您可能希望在 functions.php 中定义一个新函数,如下所示:

function the_current_url() 
  echo home_url(add_query_arg(array()));

然后在你的模板中:

<link rel="alternate" hreflang="en" href="<?php the_current_url(); ?>" />

【讨论】:

以上是关于在 Wordpress 的元标记中获取页面 URL 的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

从 Wordpress 媒体库中获取单个特定图像

没有 URL 重写的元刷新

Wordpress 在从 url 获取参数的页面加载上使用 ajax

php 获取Wordpress中主要帖子页面的URL

如何从 wordpress 中的帖子页面 id 获取 acf 的画廊图片 url

更改在WordPress中共享URL时显示的文本[关闭]