0

だから私はリンクを表示するカスタムフィールドを持っています:

<li><a href="<?php echo get_post_meta($post->ID, 'link_banner', true); ?>" target="<?php echo get_post_meta($post->ID, 'target_banner', true); ?>"><?php the_post_thumbnail(); ?></a></li>

リンク バナーは次の略です。

function link_banner(){
  global $post;
  $custom = get_post_custom($post->ID);
  $link_banner = $custom["link_banner"][0];
  ?>
  <label>Link do banner:</label><br/>
  <input name="link_banner" type="text" value="<?php echo $link_banner; ?>" />

  <?php
}

私が必要とするのは:

クライアントがページに WordPress Web サイト内のリンクを表示したい場合、ターゲットは _self になります。クライアントが wordpress の外側にページを表示したい場合、ターゲットは _blank になります。

target_banner という別の関数を作成しました

function target_banner(){
  global $post;
  $custom = get_post_custom($post->ID);
  $link_banner = $custom["link_banner"][0];
  ?>
  <label>Target do banner:</label><br/>
<select>
  <option name="_blank" value="_blank">Nova Janela</option>
  <option name="_self" value="_self">Mesma Janela</option>
</select>

  <?php
}

問題は、機能しないことです。解決策は?:(

アイデアは次のとおりです。

  • 1) 内部リンク -> SELF
  • 2) 外部リンク -> 空白
  • クライアントがクリックした場合: 同じウィンドウ (メスマ ジャネラ)、ターゲットは自分になります。
  • クライアントが [新しいウィンドウ (Nova Janela)] をクリックすると、ターゲットは空白になります。

クライアントは、同じウィンドウまたは新しいウィンドウを表示するオプションである必要があります。

試してみましたが、すべての StackOverflow と Google を検索しましたが、見つかりませんでした。

とにかくありがとう。:)


ウェブサイトはこれです: Ítalo Bianchi .

この大きなコードはスライドで使用されています。

したがって、バックエンドには 3 つのフィールドがあります。

「レジェンダ」はタイトルです(今のところ使用しません)。「リンク」はよく... リンクです。リンクが新しいウィンドウまたは同じウィンドウで開く場合の「ターゲット」。

したがって、すべての内部リンクは同じウィンドウで開き、すべての外部リンクは新しいウィンドウで開きます。ごめん。私の元の投稿は少し混乱していました。


役立つ場合: https://gist.github.com/anonymous/5884871

4

1 に答える 1

0

あなたが書いた関数のコンテキストは私にはわかりません。とにかく、私はおそらくあなたのコードでこれを行うでしょう:

function my_tsel($a, $b){
    if ($a == $b){
        echo ' selected';
    }
}
function target_banner(){
    global $post;
    $custom = get_post_custom($post->ID);
    $target_banner = $custom["target_banner"][0];
  ?>
  <label>Target do banner:</label><br/>
      <select name="taget_banner">
          <option value="_blank"<?php my_tsel($target_banner, '_blank'); ?>>Nova Janela</option>
          <option value="_self"<?php my_tsel($target_banner, '_self'); ?>>Mesma Janela</option>
      </select>

  <?php
}

全体として、おそらく、小さな関数 (function.php など) のチェックを自動化して、target_banner()

<?php
    function my_link(){
        $lnk = get_post_meta($post->ID, 'link_banner', true);
        $target = (strstr($lnk, get_bloginfo('url'))) ? '_self' : '_blank';

        echo '<li><a href="'.$lnk.'" target="'.$target.'">';
        the_post_thumbnail();
        echo '</a></li>';
    }
?>

そして私の見解では(single.phpとしましょう)

<?php my_link(); ?>
于 2013-06-25T21:34:31.023 に答える