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 网站内部的链接,目标将是 _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) 内部链接 -> SELF
  • 2) 外部链接 -> 空白
  • 如果客户端点击:Same Window (Mesma Janela),目标将是自己。
  • 如果客户端点击:New Window (Nova Janela),target 将为空白。

客户端必须是显示相同窗口或新窗口的选项。

我试过了,我搜索了所有 StackOverflow 和谷歌,但没有找到。

不管怎么说,还是要谢谢你。:)


该网站是这个:Ítalo Bianchi

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

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

“Legenda”是标题(暂时不用);“链接”是为了井……链接;如果链接将在新窗口或同一窗口中打开,则为“目标”。

因此,所有内部链接都将在同一个窗口中打开,所有外部链接都将在新窗口中打开。对不起。我原来的帖子有点混乱。


如果有帮助: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 回答