文章采集调用( DedeCMS跳转链接实际指向是哪里呢?秀站网秀)
优采云 发布时间: 2021-11-23 18:07文章采集调用(
DedeCMS跳转链接实际指向是哪里呢?秀站网秀)
在Dedecms中,文章模型经常使用jump[j]属性,但是前台显示的链接是动态的URL地址,搜索引擎会跟着爬,而是跳转发送。这个链接实际上指向哪里?王秀展 王秀展做了一个实验。这个链接返回的HTTP状态码是302,是临时跳转。这个跳转链接其实很不友好。对于站点,页面上有多个指向实际 URL 的 URL;如果是站外链接,很容易分散权重。
调用文章的一般方法如下,不修改源文件。
{dede:arclist addfields='redirecturl' channelid='1'}
][field:title/]
{/dede:arclist}
这里的链接修改为站内和站外直接调用Jump[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}
也可以增加该字段的判断,调用跳转地址,不再赘述。