DedeCMS调用文章跳转地址站外nofollow
原创在DedeCMS中,文章模型经常会用到跳转[j]这个属性,但前台显示的的链接是动态的URL地址,搜索引擎一样会沿着爬取,但跳转了。这个链接实际指向是哪里呢?重庆SEO吖七做了个实验,这个链接返回的HTTP状态码是302,属于临时跳转。这个跳转链接其实非常不友好,对于站内来讲,一个页面有多个URL指向实际网址;如果是站外链接,就容易分散权重。
一般调用文章方法如下,也不用修改源文件。
{dede:arclist addfields='redirecturl' channelid='1'}
<a href="[field:redirecturl/]" target="_blank">[field:title/]</a>
{/dede:arclist}
这里的链接修改为站内、站外的就直接调用跳转[j]引用的URL,另外站外的就加nofollow。
需要用到的就是万能的[field:array]标签,能用在任何一个DedeCMS默认的标签内,特别适合多个条件判断。
{dede:arclist addfields='redirecturl' channelid='1'}
[field:array runphp='yes']
if(@me['redirecturl'] !=''){
@me = '<a href="' . @me['redirecturl'] . '" target="_blank" rel="nofllow">' . @me['title'] . '</a>';
}else{
@me = '<a href="' . @me['arcurl'] . '" target="blank">' . @me['title'] . '</a>';
};
[/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'}
<a href="[field:redirecturl/]" target="_blank">[field:title/]</a>
{/dede:list}
同样也可以增加该字段的判断,并调用跳转的地址,就不重复了。
扩展阅读
- SEO优化集中权重的几种错误的做法
- WordPress一键批量上传图文插件,轻松管理多站SEO优化
- 老网站SEO优化首页未被收录的原因及处理办法
- 中过毒的网站做SEO优化难度增加
- 内卷的SEO优化,用户安安静静地做选择成为奢侈
- 免费的SEO优化排名不稳定是诟病吗?
- DedeCMS移动栏目导航channelartlist判断当前栏目错误
- ChatGPT对搜索引擎SEO优化是冲击还是机会
- DedeCMS更换内容模型后文章不显示无损迁移数据
- DedeCMS表单自定义字段地区三级联动下拉选择修改优化版
- DedeCMS显示当前访问用户地域PHP方法
- DedeCMS自定义表单导出当天、两天的部分Excel数据
本文地址:https://www.vi586.com/web/454.html
版权声明:原创文章,版权归重庆SEO吖七所有,欢迎分享本文,支持原创,转载请保留出处