dedecms5.7文章页的标签随机插入到内容中并且标签的地址为其标签关联的其他文章地址

dedecms5.7文章页的标签随机插入到内容中并且标签的地址为其他标签关联的文章地址

1 添加2个自定义函数

在dede/include/extend.func.php底部 添加如下代码

//根据文章ID 获取文章的标签  然后根据标签随机获取不是本地址的文章地址
function gettaglink($aid)
{
    global $lit_imglist,$dsql;

    //思路整理 先根据文章ID  找标签ID  然后根据标签ID 找到不包括自己的文章ID 然后随机获取一个文章ID
      $dsql->SetQuery("SELECT tid FROM `#@__taglist` WHERE aid = ‘{$aid}‘ ");
    $dsql->Execute();
    $ids = ‘‘;
    while($row = $dsql->GetArray())
    {
         $ids .= ( $ids==‘‘ ? $row[‘tid‘] : ‘,‘.$row[‘tid‘] );
    }

    if($ids != ‘‘)
    {
    $addsql = " WHERE tid IN($ids) and aid!=".$aid;
    }

      $dsql->SetQuery("SELECT aid FROM `#@__taglist`  {$addsql}  ");
    $dsql->Execute();
    $ads = array();
    while($row = $dsql->GetArray())
    {
         $ads[]=$row[‘aid‘];
    }
    //去重
    $ads=array_unique($ads);

    //随机获取一个
    $rand=array_rand($ads);
    //文章ID
    $realaid=$ads[$rand];
    $artinfo=GetOneArchive($realaid);
    //文章链接
    return $artinfo[‘arcurl‘];
}

function gettagandlink($aid)
{
    global $lit_imglist,$dsql;
    //思路整理 先根据文章ID  找标签ID  然后根据标签ID 找到不包括自己的文章ID 然后随机获取一个文章ID
      $dsql->SetQuery("SELECT tid FROM `#@__taglist` WHERE aid = ‘{$aid}‘ ");
    $dsql->Execute();
    $ids = ‘‘;
    while($row = $dsql->GetArray())
    {
         $ids .= ( $ids==‘‘ ? $row[‘tid‘] : ‘,‘.$row[‘tid‘] );
    }

    if($ids != ‘‘)
    {
    $addsql = " WHERE id IN($ids)";
    }

    $dsql->SetQuery("SELECT * FROM `#@__tagindex` $addsql   LIMIT 0,3");
    $dsql->Execute();

    $res=‘‘;
    while($row = $dsql->GetArray())
    {
        $tmp[][‘tag‘] = dede_htmlspecialchars($row[‘tag‘]);
    }

    foreach($tmp as $k=>&$v) {
        $link=gettaglink($aid);
        if($link) {
            $res .="<a href=‘".$link."‘ target=_blank>".$v[‘tag‘]."</a>,";
        }
    }

      return $res;
}

2 在文章详情模板

dede/templates/default/article_article.htm 的 {dede:field.body/} 替换为

  {dede:field.id runphp=‘yes‘}$GLOBALS[‘id‘] = @me;{/dede:field.id}
      {dede:field.body runphp=‘yes‘}
      $id=$GLOBALS[‘id‘];
      $str=@me;
      $length=strlen($str);
      $start=rand(0,$length);
      $end=$length-$start;
      $startstr=cn_substr(Html2text($str),$start,0);
      $middlestr=gettagandlink($id);
      $endstr=cn_substr(Html2text($str),$end,$start);
      $real=$startstr.$middlestr.$endstr;
      @me=$real;
      {/dede:field.body}

原文地址:https://www.cnblogs.com/baker95935/p/11695119.html

时间: 2024-11-05 20:36:28

dedecms5.7文章页的标签随机插入到内容中并且标签的地址为其标签关联的其他文章地址的相关文章

随机抽取文件内容中的一行

[[email protected] python]# cat Chicken_Soup_for_the_Soul.py #!/usr/bin/env python #coding=utf8 #"Chicken Soup for the Soul" Version:0.1 #author by CrazyWing,weixin:18612540627 #思想:想办法得到文本有多少行,再以行数作随机取值 import random,re with open('jitangxin.txt'

JAVAWEB开发之JSTL标签库的使用、 自己定义EL函数、自己定义标签(带属性的、带标签体的)

JSTL JSTL简单介绍: JSTL的全称:JSP Standard Tag Library.JSP标准标签库 JSTL的作用: 提供给Java Web开发者一个标准通用的标签函数库 和EL来代替传统直接在页面上嵌入Java程序(Scripting)的做法,以提高程序可读性.维护性和方便性 JSTL的版本号: JSTL的主要版本号是1.0.1.1和1.2(差别不大) 1.0版本号EL表达式还没有纳入官方规范 1.1和1.2版本号EL表达式已经纳入了官方规范 JSTL1.1 下载对应的jar包

织梦后台文章页标签调用大全

合理的利用文章调用标签,不禁可以加强页面的用户体验,也可以使网站的结构布局更加合理,充分的展示我们想要推广的文章,增加文章的曝光率.   虽然之前有发过一篇织梦文章标签,但是我习惯性的把首页,列表页以及文章页标签都保存在不同的文档里,这样用起来更方便一些.下面把整理了一份关于织梦文章样式属性的调用标签跟大家分享一下,大家可以按照自己的习惯进行整理. 1.最新文章调用标签 {dede:arclist row='10' titlelen='24' orderby='pubdate' idlist='

dedecms5.7文章页替换掉特定标志的图片链接

dedecms5.7文章页的替换掉特定标志的图片链接 解决思路 1个是在数据库里面执行替换操作 我自己查看 织梦后台也有这个功能  但是执行了一次 效果不是很好  那么就用下面的  在模板中进行内容替换  这样风险最小 代码如下 找到  templates\default\article_article.htm  找到 {dede:field.body/} 替换为 {dede:field.body runphp='yes'} $str=@me; $str=preg_replace("/<i

dedecms 文章页图片改为绝对路径

这几天在网站改版,想把网站做大,想做频道页二级域名,于是在做网站的过程中发现一个问题,dedecms开设二级域名后,在二级域名的文章页无法显示图片,查看源代码后发现问题,由于dedecms文章页中的图片默认是相对路径,所以在二级域名中无法调用到了. 使用下面的方法亲测可用: 修改目录include下的文件extend.func.php,在最后面添加一个函数方法function replaceurl($newurl){$newurl=str_replace('src="/uploads/allim

帝国cms文章页调用当前文章URL如何操作?

前面我们讨论过dedecms文章页调用地址(当前文章URL)如何操作,作为同台竞技的帝国cms也能在文章页调用当前文章URL吗?答案是肯定的!那就随ytkah一起来探索一下吧 帝国cms模板是在后台直接编辑写入数据库,不支持ftp传输修改模板文件.打开后台 - 模板 - 模板管理 - 内容模板,在相应的地方加上如下代码 http://www.***.com[!--titleurl--] [!--titleurl--]是一个标签参数,可以直接调用,注意不要在前方加斜杠/,本身已经有了. 保存模板,

织梦系统站点首页、列表、文章页等页面点击数调用方法

大家都知道默认情况下,dedeCMS系统搭建的网站文档页(文章页.软件页等)调用点击数,是动态的,刷新一次,就多一个点击.而首页.频道页.列表页等使用arclist或list调用数据的地方,更新生成静态html网页文件后点击数却是不变的.这种情况,是因为我们使用下面第一种方式调用的点击数. 1.首页.频道页.列表页等使用arclist或list标记里,静态方式调用点击数: [field:click/] 2.首页.频道页.列表页等使用arclist或list标记里,动态方式调用点击数: <scri

如何修改 Discuz 门户文章页默认视频大小

在 Discuz 系统中,论坛插入 Flash 等可以输入自定义的尺寸,但是门户文章页不可以修改.经过一番研究,找到了修改门户文章页默认视频大小的方法如下,希望对你有用:找到:/source/function/function_blog.php,在代码内搜索: function blog_flash($swf_url, $type='') { 下面两行代码为: $width = ''; $height = ''; 这里就是默认的视频宽度和高度,你可以随意修改为你想要的尺寸了!完活,收工!

修改织梦默认栏目页、文章页URL命名规则

用织梦Dedecms建站,建议优化系统默认的URL结构,这样能简化网站目录深度,利于搜索引擎收录. 现在织梦的默认文章命名规则是 {typedir}/{Y}{M}/{D}/{aid}.html {typedir}代表的是上级目录 如我的网站http://www.dedeadmin.com/ 按照织梦默认的命名规则,一级栏目下生成的文章URL为 http://www.dedeadmin.com/skill/2010/826/1.html 二级目录下生成的文章URL为 http://www.dede