当前位置:首页 > 技术教程 > dede技术教程 > 正文内容

DedeCMS织梦导航栏目增加nofollow属性与调用

访客4年前 (2020-11-16)dede技术教程1359

上次我们介绍了一个超级简单方法来实现:dede:channel织梦导航指定栏目产生rel=”nofollow”或新窗口target=”_blank” ,今天我们来介绍修改程序来完成增加nofollow属性,做到后台可控可设置。

网站建设中对不想参与排名的栏目增加rel=nofollow属性,而DedeCMS并没这样的设置,在以前版本有[field:rel/]标签,等同于dropmenu加上栏目id,并没有实际作用。实现在{dede:channel}标签下为某个栏目增加rel=nofollow属性,跟着秀站网修改源文件吧。

使用工具:

NavicatEditPlus

修改部分:

数据库dede_arttype表/dede/catalog_add.htm/dede/catalog_add.htm/dede/catalog_edit.php/dede/catalog_edit.html

具体步骤:

1.在dede_arttype数据库表增加isnofollow字段

用Navicat或其他数据库管理软件打开dede_arttype表,增加键名:isnofollow;类型:smalllint,长度:6;小数点:0;不允许空值。

2.修改/dede/catalog_add.htm

大概在219行

 <tr>  <td width="150" class='bline' height="26" style="padding-left:10px;">是否隐藏栏目:</td>  <td class='bline'>   <input type='radio' name='ishidden' value='0' class='np' checked="checked" />   显示 &nbsp;   <input type='radio' name='ishidden' value='1' class='np' />   隐藏 </td></tr>

下面增加

<tr> <td class="bline" style="padding-left:10px;" width="150" height="26">Nofollow设置:</td> <td class="bline">  <input name="isnofollow" value="1" class="np" type="radio" />  是 &nbsp;  <input name="isnofollow" value="0" class="np" type="radio"  checked='1' />  否 </td><!--www.vi586.com--></tr>

3.修改/dede/catalog_add.php

大概在65行的地方,一定要注意符号

ishidden,

后面增加

isnofollow,

'$namerule2','0','0',

后面增加

'0',

另外一处修改,大概在229行

ishidden,

后面增加

isnofollow,

大概在232行

'$ishidden',

后面增加

'$isnofollow',

4.修改/dede/catalog_edit.htm

找到

<tr><td width="150" class='bline' height="26" style="padding-left:10px;">是否隐藏栏目:</td>  <td class='bline'>   <input type='radio' name='ishidden' value='0' class='np'<?php if($myrow['ishidden']=="0") echo " checked='1' ";?>/>   显示 &nbsp;   <input type='radio' name='ishidden' value='1' class='np'<?php if($myrow['ishidden']=="1") echo " checked='1' ";?>/>   隐藏</td></tr>

下面增加

<tr> <td class="bline" style="padding-left:10px;" width="150" height="26">Nofollow设置:</td> <td class="bline">  <input name="isnofollow" value="1" class="np" type="radio" <?php if($myrow['isnofollow']=="1") echo " checked='1' ";?>>  是 &nbsp;  <input name="isnofollow" value="0" class="np" type="radio" <?php if($myrow['isnofollow']=="0") echo " checked='1' ";?>/>  否 </td></tr>

5.修改/dede/catalog_edit.php

找到如下代码:

ishidden='$ishidden',

注意一共有两处,代码下面增加

isnofollow='$isnofollow',

这样就可以在栏目修改里看到效果,默认栏目没有该属性。

6.前台模板调用

<p class="nav pl"> <ul>  <li><a href="{dede:global.cfg_basehost/}">{dede:global.cfg_indexname/}</a></li>  {dede:channel typeid='' type='top'}<li><a href="[field:typeurl/]"  [field:isnofollow runphp="yes"]   if(@me==1) @me="rel='nofollow'";else @me="";  [/field:isnofollow]>[field:typename/]</a></li>{/dede:channel} </ul></p>

但是这样写是调用不出来的,因为{dede:channel}没有这个词,修改方法和增加英文栏目名、栏目缩略图是一样的,参考其他文章《DedeCMS增加英文栏目名称栏目缩略图及调用》

打开/include/taglib/channel.lib.php,找到如下代码,

if($type=='top')

找到

typename

有三处修改,大概在78,86,92行,在typename后面增加下面代码,注意前面一个逗号。

,isnofollow
声明:
本站大部分资源收集于网络,只做学习和交流使用,版权归原作者所有。
若您需要使用非免费的软件或服务,请购买正版授权并合法使用!
本站发布的内容若侵犯到您的权益,请联系站长删除,我们将及时处理!

分享给朋友:

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。