在 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 获取参数的页面加载上使用 ajax