如何让织梦dede导航栏目的外部链接在新窗口中打开-新方法

最近给客户弄一个dede的站,客户要求我们把导航栏目里的外链接用新窗口打开。结果网上找了很多方法能行的不多。自己实践可行的这个方法分享出来。

在使用织梦dedecms模板的时候,我们有时需要将某个栏目做成一个外部链接。但在dede模板网站后台里面设置好链接后,页面会全部在当前窗口打开,不方便使用。

织梦模板dedecms默认情况下导航里面的外部链接点击了是直接在当前窗口打开的,这样不利于SEO优化,我们需要修改成在新窗口中打开,但是如果直接在导航标签里面添加target属性的话所有的栏目导航都是在新窗口中打开了,同样不是我们需要的效果,下面就教大家如何实现只让外部链接导航在新窗口打开,而普通导航栏目在当前窗口打开!下面将自己实验成功的方法说明如下:
主要步骤如下:

找到并打开/include/taglib/channel.lib.php文件,在里面找到如下代码:126行左右

1if($needRel)
2{
3    $row['sonids'] = GetSonIds($row['id'], 0, false);
4    if($row['sonids']==''$row['rel'] = '';
5    else $row['rel'] = " rel='dropmenu{$row['id']}'";
6}


在其下面添加如下代码:
$row['target'] = ($row['ispart']==2) ? "target=_blank" : "";


添加完成后保存,然后在模板-标签源码管理-找导航栏目的标签,比如我的是channel.lib.php,找到里面的<a>标签里面添加一个[field:target/],演示代码如下:


{dede:channel type='top' row='9' currentstyle="<li class='on'><a href='~typelink~' ~rel~><span>~typename~</span></a></li>"}
<li><a href='[field:typeurl/]' [field:rel/] [field:target/]><span>[field:typename/]</span></a></li>
{/dede:channel}

这样就可以自动判断并给外部链接导航添加target=_blank属性了,点击就是新窗口打开,而正常的导航则不会在新窗口打开。

下面是{dede:channelArtlist}调用方式


{dede:channelArtlist  typeid=top}

 <li>

 <a {dede:field.ispart runphp=yes}(@me==2)? @me=' target="_blank"':@me='';{/dede:field.ispart} href="{dede:field name='typeurl'/}" >{dede:field name='typename'/}</a>

 <ul style="visibility: hidden;">

  {dede:channel type=son}

   <li><a href="[field:typelink/][field:target/]>[field:typename/]</a></li>

  {/dede:channel}

 </ul>

 </li>

{/dede:channelArtlist}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

网址铺吧网址导航源码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值