0

これには簡単な解決策があると思いますが、検索しても言い回しがうまくいかないようなので、ここに投稿します。

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

助けてくれてありがとう:)

4

1 に答える 1

1

私の推測では、ワードプレスは何も追加していません。カスタム フィールドの前に URL がない場合はhttp://、ブラウザによってそのように表示されます。生成されたソース コードをブラウザで確認すると、次のようなコードが表示されます。

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

有効な URL スキーマがない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 など) を使用することが予想される場合は、それに応じて関数を調整する必要があります。

于 2013-04-02T11:42:41.420 に答える