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

需求:

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

效果如下所示:
织梦首页、列表页、文档页调用所有文档关键词
网了很久,都找不到可以直接复制过来使用的方法(我太懒了。。)
没法了,只能自己个慢慢搞。

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

经查,文档关键词所在的表名为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>

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