在本文中,我们将为您详细介绍DedeCMS调用相关新闻likearticle附加自定义字段的相关知识,此外,我们还会提供一些关于dedecmslikearticle怎么增加addfields、dede
在本文中,我们将为您详细介绍DedeCMS调用相关新闻likearticle附加自定义字段的相关知识,此外,我们还会提供一些关于dedecms likearticle 怎么增加 addfields、dedecms likearticle 效率问题、DedeCMS使likearticle标签支持排序orderby、dedecms列表dede:arclist调用自定义字段内容的有用信息。
本文目录一览:- DedeCMS调用相关新闻likearticle附加自定义字段
- dedecms likearticle 怎么增加 addfields
- dedecms likearticle 效率问题
- DedeCMS使likearticle标签支持排序orderby
- dedecms列表dede:arclist调用自定义字段内容
DedeCMS调用相关新闻likearticle附加自定义字段
DedeCMS特别灵活,可以根据Keywords、新闻标题调用新闻,以提高内容之间的相关度,提高页面权重。实现这个功能主要用likearticle标签,该标签只能用在内容详细页,默认不能调用自定义附加字段,但经常会用到调用附加表字段功能,修改办法如下:
打开/include/taglib/likearticle.lib.php,找到
$row['templeturl'] = $GLOBALS['cfg_templeturl'];
下面增加代码
$addfile = $refObj->ChannelUnit->ChannelInfos["listfields"]; //获取新闻模型的自定义字段列表
if($addfile){
$addfiles = explode(",",$addfile); //拆分成数组
$len = count($addfiles);
for($j=0;$j<$len;$j++){ //循环处理每一个数组元素
$fname = $addfiles[$j];
//获取每一个元素对应的值,并将元素名作为用于显示的$row数组的ID键,并赋值。
$row[''.$fname.''] = $refObj->Fields[''.$fname.''];
}
}
调用自定义附加字段的其他修改办法
{dede:likeartlist row='10'}
<a href='[field:arturl/]'>
<p>
[field:id runphp='yes']
$aid = @me;
$row = $GLOBALS['dsql']->GetOne("Select 字段名 From `dede_addon11` where aid='$aid' "); //根据实际需要修改附加表
@me = cn_substr(strip_tags("{$row['字段名']}"),600);
本文章网址:http://www.ppssdd.com/code/3410.html。转载请保留出处,谢谢合作!dedecms likearticle 怎么增加 addfields
OSC 请你来轰趴啦!1028 苏州源创会,一起寻宝 AI 时代
DedeCMS 的 likearticle.lib.php 文件并且添加了 addfields
源码如下 //获取附加表信息 $addfield = trim($ctag->GetAtt(''addfields'')); $addfieldsSql = ''''; $addfieldsSqlJoin = ''''; if($addfield != '''' && !empty($channelid)) { $row = $dsql->GetOne("SELECT addtable FROM `#@__channeltype` WHERE id=''$channelid'' "); if(isset($row[''addtable'']) && trim($row[''addtable'']) != '''') { $addtable = trim($row[''addtable'']); $addfields = explode('','', $addfield); $row[''addtable''] = trim($row[''addtable'']); $addfieldsSql = ",addf.".join('',addf.'', $addfields); $addfieldsSqlJoin = " LEFT JOIN `$addtable` addf ON addf.aid = arc.id "; } } 请问还需修改什么吗
dedecms likearticle 效率问题
OSC 请你来轰趴啦!1028 苏州源创会,一起寻宝 AI 时代
在使用 dedecms 发布文章 站内文章到达近 30w 的时候出现问题,发布新闻后有个相关新闻的需求,需要用到 likearticle 标签,仔细看了一下 dedecms 的 taglib 发现时这么调取的
if(!empty($refObj->Fields[''keywords''])) { $keywords = explode('','' , trim($refObj->Fields[''keywords''])); $keyword = ''''; $n = 1; foreach($keywords as $k) { if($n > 3) break; if(trim($k)=='''') continue; else $k = addslashes($k); $keyword .= ($keyword=='''' ? " CONCAT(arc.keywords,'' '',arc.title) LIKE ''%$k%'' " : " OR CONCAT(arc.keywords,'' '',arc.title) LIKE ''%$k%'' "); $n++; } }
也就是如果我设置了 a,b,c 3 个关键词为文档关键词,最后生成的 sql 语句片段为
and ( CONCAT(arc.keywords,'' '',arc.title) like ''%a%'' OR CONCAT(arc.keywords,'' '',arc.title) like ''%b%'' OR CONCAT(arc.keywords,'' '',arc.title) like ''%c%'' )
不知哪位大侠使用过有优化的经验
DedeCMS使likearticle标签支持排序orderby
我们在使用Dedecms用于图片站WEB开发时,需要随机调用文章、图集和关联文章、图集功能,以增加用户黏度,这个也属于站内优化重要一部分。
一般用标签调用都有排序orderby,默认的排序主要有:
orderby='sortrank' 文档排序方式
orderby='hot' 或 orderby='click' 表示按点击数排列
orderby='sortrank' 或 orderby='pubdate' 按出版时间排列
orderby='near'
orderby='lastpost' 按最后评论时间
orderby='scores' 按得分排序
orderby='id' 按文章ID排序
orderby='rand' 随机获得指定条件的文档列表
但是调用文章相关文章标签{dede:likearticle}却没有orderby这个功能。今天我们想给likearticle也增加一个排序功能.
方法也很简单,打开/include/taglib/likearticle.lib.PHP,找到以下代码(大概在第97行):
if( empty($arcid) || $byabs==0 ) {
$orderquery = " order by arc.id desc ";
}
else {
$orderquery = " order by ABS(arc.id - ".$arcid.") ";
}
修改为:
if($orderby=='hot' || $orderby=='click') $orderquery = " order by arc.click $orderWay";
else if($orderby == 'sortrank' || $orderby=='pubdate') $orderquery = " orderby arc.sortrank $orderWay";
else if($orderby == 'id') $orderquery = " order by arc.id $orderWay";
else if($orderby == 'near') $orderquery = ")";
else if($orderby == 'lastpost') $orderquery = " order by arc.lastpost $orderWay";
else if($orderby == 'scores') $orderquery = " order by arc.scores $orderWay";
else if($orderby == 'rand') $orderquery = " order by rand()";
else if($orderby == 'weight') $orderquery = " order by arc.weight asc";
else $orderquery = " order by arc.sortrank $orderWay";
保存后,再在{dede:likearticle}标签中增加orderby的值即可实现按增加需要的方式进行排序
dedecms列表dede:arclist调用自定义字段内容
Dedecms列表dede:arclist调用自定义字段内容有2种办法。
1、调用channelid属性及addfields字段。举例:
{dede:arclist addfields=’video_description,video_id’ row=’8′ channelid=’3′} [field:video_description /] – [field:video_id /] - <a href="https://www.360muye.cn/">[field:title /]</a> {/dede:arclist}
2、通过PHP代码实现。举例:
{dede:arclist titlelen='26' row='20' orderby='id'} [field:id runPHP="yes"] $dsql = new Dedesql(false); $a="SELECT * FROM dede_addongame_tg where aid=@me"; $arcRow = $dsql->Getone($a); @me='url="'.$arcRow[sptype].'" leixing="'.$arcRow[model]; [/field:id] {/dede:arclist}
通过上面的两种方法均可调用织梦dede:arclist的自定义字段内容。转载请注明:木业网
今天关于DedeCMS调用相关新闻likearticle附加自定义字段的介绍到此结束,谢谢您的阅读,有关dedecms likearticle 怎么增加 addfields、dedecms likearticle 效率问题、DedeCMS使likearticle标签支持排序orderby、dedecms列表dede:arclist调用自定义字段内容等更多相关知识的信息可以在本站进行查询。
本文标签: