【问题标题】: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也是客户端,因此我猜执行比服务器端更快?

标签: php wordpress href meta-tags


【解决方案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(); ?>" />

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-12
    • 1970-01-01
    • 1970-01-01
    • 2010-12-02
    • 1970-01-01
    • 2011-05-07
    • 1970-01-01
    相关资源
    最近更新 更多