我猜这里有一个简单的解决方案,但我在搜索时似乎无法正确使用,所以我会在这里发布。
我在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
感谢您的帮助:)
答案 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等),则应相应调整该功能。