• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    DEDECMS相关文章以关键字相关的修改方法(自定义函数)

    发布者: 雪落无声 | 发布时间: 2025-7-24 16:46| 查看数: 113| 评论数: 0|帖子模式

            现在终于出了解决办法:
            1 在 inc_functions.php 最后?>前 加上
             
                            复制代码                        代码如下:
           
            //查询指定栏目里包含相应关键字的文章,并列出 
            //参数说明:$showImg 是否显示缩略图,0表示不显示,1表示显示 
            // $titleLen 标题长度,0表示无限 
            // $rowCount 输出行数,0表示无限 
            // $typeid 栏目ID,0表示所有栏目 
            // $keyWord 关键字,字符串 
            function ShowKeyWordArc($showImg,$titleLen,$rowCount,$typeid,$keyWord){ 
            $dsql = new DedeSql(false); 
            $sql = TypeGetSunID($typeid,$dsql); </p> //关键字分词技术 
            $ks = explode(" ",$keyWord); 
            foreach($ks as $k){ 
            $k = trim($k); 
            if ($k!="") { 
            $kwsqlarr[] = " (xkzzz_archives.title like '%$k%')"; 
            //$kwsqlarr[] = " (xkzzz_archives.keywords like '%$k%') "; //如果需要相关到其它文章的关键字,解除此行注释 
            } 
            } 
            $where = implode(' OR ',$kwsqlarr);
    $sql="Select tp.namerule,tp.typedir,xkzzz_full_search.aid,xkzzz_full_search.url,xkzzz_archives.* From xkzzz_full_search left join xkzzz_archives on xkzzz_full_search.aid=xkzzz_archives.ID left join xkzzz_arctype tp on xkzzz_archives.typeid=tp.ID where {$sql} and ((xkzzz_archives.title like '%".$keyWord."%') or $where) order by xkzzz_full_search.aid desc"; 
            $dsql->SetQuery($sql); 
            $dsql->Execute(); 
            $ss=""; 
            $i=0; 
            while($row=$dsql->GetObject()){ 
            $url=GetFileUrl($row->ID,$row->typeid,$row->senddate,$row->title,$row->ismake,$row->arcrank,$row->namerule,$row->typedir,$row->money); 
            if ($showImg==0){ 
            $ss=$ss.""; 
            if ($titleLen!=0) $ss=$ss.cn_substr($row->title,$titleLen); 
            else $ss=$ss.$row->title; 
            $ss=$ss."
    "; 
            }else{ 
            $ss=$ss."";

    if ($row->litpic!="") $ss=$ss."
    "; 
            else $ss=$ss."
    "; 
            $ss=$ss."
    "; 
            if ($titleLen!=0) $ss=$ss.cn_substr($row->title,$titleLen); 
            else $ss=$ss.$row->title; 
            $ss=$ss."
    "; 
            } 
            $i++; 
            if (($rowCount!=0)&&($i>=$rowCount)) return $ss; 
            } 
            return $ss; 
            }          
            2 放在文章模板页内
            {dede:field name=’keywords’ function=’ShowKeyWordArc(0,32,10,0,”@me”)’/} 
            就表示是取所有栏目内的相关文章(与当前文章的关键字相关),标题长度最大32,最多显示10条,不显示缩略图

            或 
            {dede:field name=’keywords’ function=’ShowKeyWordArc(0,32,10,0,”高三 语文”)’/} 
            可以找到标题里,含有“高三 语文”,或者含有“高三”或“语文”的文章

            例如,这一段:
            相关文章 
            {dede:likeart titlelen=’24′ row=’10′}

            [field:textlink/]< > 
            {/dede:likeart}

            就改成:
            相关文章 
            {dede:field name=’keywords’ function=’ShowKeyWordArc(0,32,10,0,”@me”)’/}

            申明:这个函数不是我写的根据关键字来相关文章,就用户体验以及SEO来说都是非常好的 
            但是唯一不好的地方就是生成静态的时候会慢很多,哈哈,服务器又要辛苦了


    来源:互联网
    免责声明:如果侵犯了您的权益,请联系站长(1277306191@qq.com),我们会及时删除侵权内容,谢谢合作!

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    ×

    最新评论

    浏览过的版块

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表