织梦首页、列表页、文档页调用所有文档关键词

本文档介绍了如何在织梦CMS中实现首页、列表页和文档页调用所有文档关键词,并实现关键词点击后显示相关文档,同时为关键词赋予随机颜色。主要涉及步骤包括:从dede_keywords表获取关键词,为关键词添加链接,以及通过JavaScript实现关键词颜色随机化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求:
  • 要求在首页、列表页、文档页能调用所有文档关键词,
  • 并且点击进去能显示包含该关键词的所有文档,
  • 每个关键词显示随机显示颜色。

效果如下所示:
在这里插入图片描述
网了很久,都找不到可以直接复制过来使用的方法(我太懒了。。)
没法了,只能自己个慢慢搞。

步骤一:列出所有文档关键词

经查,文档关键词所在的表名为dede_keywords

  • 方法一:sql标签
{dede:sql sql="select  * From dede_keywords "}

<a href="/plus/search.php?keyword=[field:keyword/]" class='yanse' id="data_[field:aid/]">

    [field:keyword/]
</a>
{/dede:sql}

方法二:loop标签

{dede:loop table='dede_keywords' sort='' row='1' if=''}

<a href='/plus/search.php?keyword=[field:keyword/]'>[field:keyword/]</a><br/>

{/dede:loop}

把row属性去掉,无法正常显示!

步骤二:给关键词加上链接

链接咋写呢?
搜索框搜索时链接是这样的:
在这里插入图片描述
貌似在哪里看到过关键词链接跟搜索框里搜索时链接很像,于是去/puls/search.php里边找,发现以下代码,
在这里插入图片描述
于是我就猜测关键词链接是/plus/search.php?keyword=…
(好吧我承认,我很菜,只能边看源码边猜。。。不许笑话我)
试了一下,果不其然是这样的,哈哈哈~~~~

步骤三:关键词颜色随机

我php菜,js更是菜到家。。。
前端小姐姐给的css样式是不同的class颜色不一样:

      <a href="#" class="yanse1">拉肚子怎么办</a>
      <a href="#" class="yanse2">肠炎的治疗方法</a>
      <a href="#" class="yanse3">肠炎反复</a>
      <a href="#" class="yanse4">吃什么对肠道好</a>
      <a href="#" class="yanse5">肠道疾病怎么调养</a>
      <a href="#" class="yanse6">肠道感染</a>
      <a href="#" class="yanse1">溃疡性结肠炎能活多久</a>
      <a href="#" class="yanse2">肠易激综合症的症状</a>
      <a href="#" class="yanse3">民间偏方治肠炎靠谱么</a>
      <a href="#" class="yanse4">肠炎的自愈方法</a>
      <a href="#" class="yanse5">结肠炎最佳治疗方案</a>
      <a href="#" class="yanse6">溃疡性结肠炎是怎么回事</a>
      <a href="#" class="yanse1">直肠炎吃什么药好的快</a>
      <a href="#" class="yanse2">直乙状结肠炎严重么</a>

本来写的是下边这样的,

<script type="text/javascript">
    arr = $(".yanse");
    for (i = 1; i <= 20; i++) {
        $(".yanse:eq("+i+")").attr('class', getRandomColor())
    }

    function getRandomColor() {
        return 'yanse' + Math.floor(Math.random() * 6 + 1);//输出1~6之间的随机整数
    }
</script>

但是结果是,每隔一个,就有一个关键词更改class属性失败,不清楚咋回事呐:
在这里插入图片描述
找不到错误原因就换个方法呐!
给关键词加上id属性,根据id进行筛选。
for循环里i<20是因为,dede_keywords表中id是自增,如果删除中间一个keyword,其他keyword id不会改变。如果写i<=arr.length,会导致后面的关键词可能无法更改class属性。因此就干脆把i的最大值写大一点。(可能表达不太清楚,看不懂拉倒)

{dede:sql sql="select  * From dede_keywords "}
<a href="/plus/search.php?keyword=[field:keyword/]" class='yanse' id="data_[field:aid/]">

    [field:keyword/]</a>
{/dede:sql}


<script src="/skin/js/jquery-1.10.2.min.js"></script>
<script type="text/javascript">
    arr = $(".yanse");
    for (i = 1; i <= 20; i++) {
        $("#data_" + i).attr('class', getRandomColor())
    }

    function getRandomColor() {
        return 'yanse' + Math.floor(Math.random() * 6 + 1);
    }
</script>

相似文章:织梦列表页面调用文章关键词

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值