如何在Wordpress中创建链接而不将其自身添加到现有URL?

时间:2013-04-02 10:24:07

标签: wordpress hyperlink

我猜这里有一个简单的解决方案,但我在搜索时似乎无法正确使用,所以我会在这里发布。

我在Wordpress中有一些看起来像这样的链接:

<a target="_blank" href="<?php echo get_post_meta($post->ID, $prefix.'hjemmeside', true); ?>"><?php echo get_post_meta($post->ID, $prefix.'hjemmeside', true); ?></a>

我在单个模板中回显的常规链接,用于创建用户主页/脸谱等。问题是当您点击它时,链接只会将自己添加到URL的末尾:

示例:

wordpress.com/single

点击链接时:

wordpress.com/single/www.homepagelink.com

感谢您的帮助:)

1 个答案:

答案 0 :(得分:1)

我的猜测是wordpress没有添加任何内容。如果您在自定义字段中没有http://之前的URL,则浏览器会以此方式显示该URL。如果您使用浏览器检查生成的源代码,您将找到如下代码:

<a target="_blank" href="www.homepagelink.com">www.homepagelink.com</a>

如果没有http://或其他有效的URL架构,浏览器会将其解释为相对链接并按此处理。

您可以在字段值中添加http://,也可以在主题的functions.php中放置包装函数,以确保它始终被解释为URL,而不管字段中放置了什么。

function my_field_link($id, $field) {
  $value = get_post_meta($id, $field, true);
  if (substr($value, 0, 7) == "http://") return $value;
  return "http://" . $value;
}

然后你可以像这样调用这个函数:

<a target="_blank" href="<?php echo my_field_link($post->ID, prefix.'hjemmeside'); ?>"><?php echo my_field_link($post->ID, prefix.'hjemmeside'); ?></a>

现在该链接始终以http://开头。

注意:如果您希望使用其他URL模式(https,ftp,scp等),则应相应调整该功能。