织梦DedeCMS导航菜单外部链接自动新窗口打开教程

在织梦DedeCMS网站建设中,导航菜单经常需要处理外部链接。当栏目属性设置为外部链接时,通常希望该链接在新窗口打开,以提升用户体验。本文详细讲解如何通过修改模板代码,实现导航菜单中外部链接自动添加target=”_blank”属性。

核心代码实现

以下代码适用于DedeCMS的channelartlist标签和channel标签,用于判断栏目是否为外部链接并自动添加新窗口打开属性。

<ul class="navig clearfix">
    <li class="menudh_1"><a href="/"><i></i>网站首页</a></li>
    {dede:channelartlist typeid='top' currentstyle='active'}
    <li class="menudh_1 menudh_{dede:global name=itemindex runphp=yes}@me=@me+1;{/dede:global}">
        <a{dede:field.ispart runphp=yes}(@me==2)? @me=' target="_blank"':@me='';{/dede:field.ispart} href="{dede:field name='typeurl'/}" class='{dede:field.currentstyle/}'>
            <i></i>{dede:field name='typename'/}
        </a>
        <ul>
            {dede:channel type=son noself=yes}
            <li>
                <a href="[field:typelink/]"[field:ispart runphp=yes](@me==2)? @me='target="_blank"':@me='';[/field:ispart]>
                    [field:typename/]
                </a>
            </li>
            {/dede:channel}
        </ul>
    </li>
    {/dede:channelartlist}
</ul>

代码使用说明

上述代码的核心逻辑是:如果栏目属性是外部链接时,自动加入target=”_blank”新窗口打开,否则就不添加该属性。具体实现通过runphp=yes动态判断ispart字段的值来实现。

dede:channelartlist标签中的判断

在channelartlist标签中,使用以下代码进行判断:

{dede:field.ispart runphp=yes}(@me==2)? @me=' target="_blank"':@me='';{/dede:field.ispart}

当ispart字段值为2时,表示该栏目为外部链接,此时输出target=”_blank”属性;否则输出空字符串。

dede:channel标签中的判断

在channel标签中,使用以下代码实现相同功能:

[field:ispart runphp=yes](@me==2)? @me=' target="_blank"':@me='';[/field:ispart]

此代码同样判断ispart字段,当值为2时添加新窗口打开属性,确保子栏目中的外部链接也能正确在新窗口打开。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。