DedeCMS调用文章跳转地址站外nofollow

时间:2023-08-09 12:02 浏览:0 评论:0
0

       在DedeCMS中,文章模型经常会用到跳转[j]这个属性,但前台显示的的链接是动态的URL地址,搜索引擎一样会沿着爬取,但跳转了。这个链接实际指向是哪里呢?秀站网秀站网做了个实验,这个链接返回的HTTP状态码是302,属于临时跳转。这个跳转链接其实非常不友好,对于站内来讲,一个页面有多个URL指向实际网址;如果是站外链接,就容易分散权重。

       一般调用文章方法如下,也不用修改源文件。

{dede:arclist addfields='redirecturl' channelid='1'} [field:title/] {/dede:arclist}

       这里的链接修改为站内、站外的就直接调用跳转[j]引用的URL,另外站外的就加nofollow。

       需要用到的就是万能的[field:array]标签,能用在任何一个DedeCMS默认的标签内,特别适合多个条件判断。

{dede:arclist addfields='redirecturl' channelid='1'} [field:array runphp='yes'] if(@me['redirecturl'] !=''){ @me = '' . @me['title'] . ''; }else{ @me = '' . @me['title'] . ''; }; [/field:array] {/dede:arclist}

       DedeCMS的{dede:list}标签不能直接调用redirecturl字段,需要修改一下源程序

       打开/include/arc.listview.class.php,找到(复制请删除分隔符)

//如果不用默认的sortrank或id排序,使用联合查询(数据量大时非常缓慢) if(preg_match('/hot|click|lastpost/', $orderby)) { $query = "SELECT arc.*,tp.typedir,tp.typename,tp.isdefault,tp.defaultname, tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath $addField FROM `#分隔符@__archives` arc LEFT JOIN `#分隔符@__arctype` tp ON arc.typeid=tp.id $addJoin WHERE {$this->addSql} $ordersql LIMIT $limitstart,$row"; }

       在这段代码前,增加

$addField .= ','.$addtable.'.redirecturl';

       调用方法

{dede:list row='1' addfields='redirecturl' orderby='pubdate'} [field:title/] {/dede:list}

       同样也可以增加该字段的判断,并调用跳转的地址,就不重复了。

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. dedecms > DedeCMS调用文章跳转地址站外nofollow

用户评论