自定义字段与_blank

时间:2013-06-25 19:06:43

标签: php wordpress wordpress-theming

所以我有一个显示链接的自定义字段:

<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网站内显示链接,则目标将是_self。如果客户希望页面显示OUTSITE 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)内部链接 - &gt; SELF
  • 2)外部链接 - &gt; BLANK
  • 如果客户点击:Same Window(Mesma Janela),目标将为self。
  • 如果客户点击:新窗口(Nova Janela),目标将为空白。

客户端可以选择显示相同的窗口或新窗口。

我试过了,我搜索了所有StackOverflow和Google,但我找不到。

非常感谢。 :)


网站就是这个:Ítalo Bianchi

幻灯片中使用了这个大代码。

所以在后端我有三个字段。

“Legenda”是标题(现在不会使用); “链接”用于井......链接; 如果链接将在新窗口或同一窗口中打开,则为“目标”。

因此,所有内部链接将在同一窗口中打开,所有外部链接将在新窗口中打开。抱歉。我原来的帖子有点令人困惑。


如果有帮助:https://gist.github.com/anonymous/5884871

1 个答案:

答案 0 :(得分: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(); ?>