找回密码
 立即注册
搜索

途迹耕耘

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

GMT+8, 2025-12-22 04:11 , Processed in 0.199165 second(s), 14 queries .

[DZ教程] discuz! x3.2调用全站tag标签

[复制链接]
bdk 发表于 2020-5-2 07:18:13 | 显示全部楼层 |阅读模式
不懂代码真费劲,这个代码找了好久,之前使用过标签云插件,有个弊端是显示出来的tag标签在页面源代码中没有名称和链接,类似一个动画形式,不但不灵活,而且对蜘蛛是无用的,卸载。
最近无意中在某个模板中发现了这段代码:
  1. <!--{eval $tu_tags = C::t(common_tag)->fetch_all_by_status();}-->
  2. <!--{eval $num = 1;}-->
  3. <!--{loop $tu_tags $tu_tag}-->
  4. <!--{if $num<=60 }-->
  5. <a href="misc.php?mod=tag&id=$tu_tag[tagid]" target="_blank">$tu_tag[tagname]</a><
  6. <!--{/if}-->
  7. <!--{eval $num++;}-->
  8. <!--{/loop}-->
复制代码
此代码效果是可以调出所有tag标签,num<=60来控制数量。
貌似可以使用在模板的大多数页面。
**但是,有个问题,调出来的结果是正序,也就是说从第一个tag标签开始的,限制数量时会导致页面始终显示前多少个标签而无变化。正在寻找倒序代码,待续……
=========================================================
20150923 更新
改为使用DB::方式,代码如下:

  1. <!--{eval $tu87_tags = DB::fetch_all("SELECT * FROM ".DB::table('common_tag')." WHERE `status`= 0 ORDER BY `tagid` DESC LIMIT 0, 60");}-->
  2. <!--{loop $tu87_tags $tu87_tag}-->
  3. <li class="header_taglist"><a href="misc.php?mod=tag&id=$tu87_tag[tagid]" target="_blank">$tu87_tag[tagname]</a></li>
  4. <!--{/loop}-->
复制代码
=========================================================
20160805 更新
这个还没有测试过。

  1. <!--{eval $tagcloud = mysql_query("select tagid,tagname from (select t2.tagid,t1.tagname,count(*) as count from pre_common_tag t1 join pre_common_tagitem t2 on t1.tagid=t2.tagid GROUP BY t2.tagid order by count DESC limit 45) temp order by tagname");}-->
  2. <!--{eval while($re=mysql_fetch_array($tagcloud)){ }-->
  3. <!--{eval $random= (7 + mt_rand() / mt_getrandmax() * 12)}-->
  4. <!--{eval echo '<a href="misc.php?mod=tag&id='.$re[tagid].'" target="_blank" style="font-size:'.$random.'pt">'.$re[tagname].'</a>'}-->
  5. <!--{eval } }-->
复制代码