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

时间:2021-10-03 23:45:41

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&period;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如何操作&quest;

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

随机推荐

  1. Configure a VLAN &lpar;on top of a bond&rpar; with NetworkManager &lpar;nmcli&rpar; in RHEL7

    not on top of a bond Environment Red Hat Enterprise Linux 7 NetworkManager Issue Need an 802.1q VLAN ...

  2. jquery禁用文本框

    禁用文本框 //文本框禁用 $("input[type='text']").each(function () { $("#" + this.id).attr(& ...

  3. Future和Promise

    Future用于获取异步操作的结果,而Promise则比较抽象,无法直接猜测出其功能. Future Future最早来源于JDK的java.util.concurrent.Future,它用于代表异 ...

  4. Makefile隐含规则

    两个隐含规则; 将所有的name.o的依赖自动推导为name.c并使用规则$(CC) -c $(FLAGS) $(CPPFLAGS)得到目标.这个规则中只有-c是隐含规则中有的,后面两个变量是留给用户 ...

  5. JSP隐含变量和Spring中Model在EL表达式中的读取顺序

    偶然中存在着必然,必然中存在着偶然 偶然出现的bug,必然存是由代码的不合理甚至错误的 代码逻辑越长,越复杂,就越容易出现bug 之前项目里几次偶然出现了一个bug,简单的描述就是第一次新增了之后进行 ...

  6. Activity学习(四)——简单切换

    理论学习Activity之后,我们就来具体的实战,Activity之间相互切换依靠的是“ 意图 ”(Intent),这个 Intent 包含了要跳转到的Activity的一些信息,因为Activity ...

  7. jquery ajax 提交表单&lpar;file &amp&semi;&amp&semi; input&rpar;

    用到的插件 jquery.js jquery.form.js[http://malsup.github.io/jquery.form.js] 提交页面 <form enctype="m ...

  8. Is It A Tree&quest;&lpar;并查集&rpar;(dfs也可以解决)

    Is It A Tree? Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u Submi ...

  9. CentOS6&period;2&lpar;64bit&rpar;下mysql5&period;6&period;16主从同步配置

    1. 主配置,进入mysql.cnf在[mysqld]下面添加以下配置 [root@localhost ~]# vi /etc/mysql.cnf server-id=1 binlog-format= ...

  10. 【Luogu P2664】树上游戏

    Problem Description \(lrb\) 有一棵树,树的每个节点有个颜色.给一个长度为 \(n\) 的颜色序列,定义 \(s(i,j)\) 为 \(i\) 到 \(j\) 的颜色数量.以 ...