2

ユーザーが自分の URL に Web サイトを入力するカスタム フィールド (「Web サイト」と呼ばれる) があります。私の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:// が 2 つあることに関係していると思います

今、私は http:// を PHP コードから削除しようとしましたが、これは嘘です

<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 をカスタム フィールドに入力し、エントリを公開するとします。URL は次の場所に移動します

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 に答える