2

我有一个自定义字段(称为“网站”),用户可以在其中将网站输入到他们的 URL。我的php代码如下

<div class="profileInfo">
   <h4  class="website">Website:</h4>
      <?php if ( get_post_meta($post->ID, 'website', true)) { ?>
        <p><a href="http://<?php echo get_post_meta($post->ID, 'website', true) ?>"><?php echo get_post_meta($post->ID, 'website', true) ?></a></p>
      <?php } else { ?>
    <p class="na">no email provided</p>
    <?php } ?>
</div>

在上面的示例中,我在 URL 前面加上 http://

所以我的问题是,当用户在自定义字段中输入像http://www.example.com这样的 URL 时,它不会正确链接到该站点。URL 在前端 http//www.example.com 上看起来像这样

奇怪的是冒号 : 被剥离或取出,因此 URL 不起作用!我认为这与有两个 http:// 有关

现在,我尝试从 PHP 代码中删除 http:// 就像这样

<p><a href="<?php echo get_post_meta($post->ID, 'website', true) ?>"><?php echo get_post_meta($post->ID, 'website', true) ?></a></p>

因此,假设用户现在将 www.example.com 输入到自定义字段并发布条目。网址现在转到

http://mysite.com/www.example.com

它尝试将 URL 构建到我当前的站点页面中。不知道为什么它不将其视为 URL。

寻求一些帮助如何在 PHP 中正确编写此代码。

谢谢

4

1 回答 1

6
<?php 
if ( get_post_meta($post->ID, 'website', true)) 
{
    $link = get_post_meta($post->ID, 'website', true);
    $link = str_replace(array('http://','https://'), array('',''), $link);
    ?><p><a href="http://<?=$link?>"><?=$link?></a></p><?php 
}  
else
{ 
    ?><p class="na">no email provided</p><? 
} 
?>    

这将替换 url 中的所有 http://。

于 2012-11-11T15:08:59.480 回答