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(,$length);
$end=$length-$start;
$startstr=cn_substr(Html2text($str),$start,);
$middlestr=gettagandlink($id);
$endstr=cn_substr(Html2text($str),$end,$start);
$real=$startstr.$middlestr.$endstr;
@me=$real;
{/dede:field.body}

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

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

    JSTL  JSTL简单介绍: JSTL的全称:JSP Standard Tag Library,JSP标准标签库 JSTL的作用:   提供给Java Web开发者一个标准通用的标签函数库   和E ...

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

    dedecms5.7文章页的替换掉特定标志的图片链接 解决思路 1个是在数据库里面执行替换操作 我自己查看 织梦后台也有这个功能  但是执行了一次 效果不是很好  那么就用下面的  在模板中进行内容替 ...

  3. 织梦dedecms首页、列表页、文章页文章点击浏览次数实时调用方法

    首先呢,先在根目录 /plus 目录下找到count.php  复制一份然后命名为viewclick.php(你也可以命名为你容易理解的名字)用编辑器将viewclick.php打开然后删除以下几行代 ...

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

    这几天在网站改版,想把网站做大,想做频道页二级域名,于是在做网站的过程中发现一个问题,dedecms开设二级域名后,在二级域名的文章页无法显示图片,查看源代码后发现问题,由于dedecms文章页中的图 ...

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

    在 Discuz 系统中,论坛插入 Flash 等可以输入自定义的尺寸,但是门户文章页不可以修改.经过一番研究,找到了修改门户文章页默认视频大小的方法如下,希望对你有用:找到:/source/func ...

  6. dede list列表页和文章页分别使用if else

    标签: dede 2015-01-25 19:33 755人阅读 评论(0) 收藏 举报 分类: [ Dede ](20) 版权声明:本文为博主原创文章,未经博主允许不得转载. list列表页中使用i ...

  7. 修改织梦默认栏目页、文章页URL命名规则,简化目录结构

    版权声明:本文为博主原创文章,未经博主允许不得转载. 用织梦Dedecms建站,建议优化系统默认的URL结构,这样能简化网站目录深度,利于搜索引擎收录. 现在织梦的默认文章命名规则是 {typedir ...

  8. DedeCMS织梦文章页图片地址为绝对路径实现方法

    {dede:field.body function='replaceurl(@me)'/} 余斗博客改版后增加了一个m站点即手机站点,用二级域名实现,在做手机站的过程中发现一个问题,手机站和pc站都是 ...

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

    前面我们讨论过dedecms文章页调用地址(当前文章URL)如何操作,作为同台竞技的帝国cms也能在文章页调用当前文章URL吗?答案是肯定的!那就随ytkah一起来探索一下吧 帝国cms模板是在后台直 ...

随机推荐

  1. 配置文件_自定义section标签获取数据

    前言:为了节约时间,先只粘贴关键代码: 1-添加section标签,name为自定义标签名称,type为:命名空间+类型,程序集名称 <section name="watchModel ...

  2. go-面向对象编程(上)

    一个程序就是一个世界,有很多对象(变量) Golang 语言面向对象编程说明 1) Golang 也支持面向对象编程(OOP),但是和传统的面向对象编程有区别,并不是纯粹的面向对 象语言.所以我们说 ...

  3. PHP+Ajax点击加载更多列表数据实例

    一款简单实用的PHP+Ajax点击加载更多列表数据实例,实现原理:通过“更多”按钮向服务端发送Ajax请求,PHP根据分页参数查询将最新的几条记录,数据以JSON形式返回,前台Query解析JSON数 ...

  4. JS引擎和作用域、编译器之间对话

    关于以下代码段: function foo(a) { console.log( a ); // 2 } foo( 2 ); JS引擎和作用域.编译器之间对话:

  5. 在Dynamics CRM中自定义一个通用的查看编辑注释页面

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复162或者20151016可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 注释在CRM中的显示是比较特别, ...

  6. 1041. Robot Bounded In Circle

    本题题意: 一开始一个机器人站在了(0,0)上,面朝的方向是北,收到三个序列G,L,R. G:直走 L:向左转 R:向右转 按序执行,永远重复. 返回TRUE,如果处在一个圈. 第一个卡住的点: 1. ...

  7. Python通用函数实现数组计算

    一.数组的运算 数组的运算可以进行加减乘除,同时也可以将这些算数运算符进行任意的组合已达到效果. >>> x=np.arange() >>> x array([, ...

  8. iOS滑动手势UIPanGestureRecognizer 注意事项

    今天在做侧滑页面时,发现页面随着滑动手势而滑动,到临界点时,如果再滑动会出现抖动现象.找到解决办法是进入方法后先判断一次,再判断是在滑动范围内让页面滑动.遂将滑动手势(UIPanGestureReco ...

  9. Android 蓝牙开发(1)

    普通蓝牙设备官方文档 Android 平台包含蓝牙网络堆栈支持,凭借此支持,设备能以无线方式与其他蓝牙设备交换数据.应用框架提供了通过 Android Bluetooth API 访问蓝牙功能的途径. ...

  10. MySQL事务。

    相关资料:https://zhuanlan.zhihu.com/p/70701037        https://zhuanlan.zhihu.com/p/59061106 一.事务. 1.概念.事 ...