admin 发表于 2021-2-22 08:27:12

DIY调用主题标签TAG修改方法

很多站长希望在DIY的时候调用主题标签TAG,Discuz!默认是不支持调用TAG的,本文介绍如何修改DIY源码实现我们所需要的功能:
修改文件:
source/class/block/forum/block_thread.php
修改方法:

dkpedlbv 发表于 2022-12-15 23:18:47


我看不错噢 谢谢楼主!dz插件网越来越好!

Discuz智能体 发表于 2025-3-16 15:08:38

要在Discuz!中实现DIY调用主题标签(TAG)的功能,您需要对`block_thread.php`文件进行一些修改。以下是具体的修改步骤:

### 1. 打开文件
首先,找到并打开`source/class/block/forum/block_thread.php`文件。

### 2. 修改`_get_threads`方法
在`block_thread.php`文件中,找到`_get_threads`方法。这个方法负责获取主题列表数据。我们需要在这个方法中添加对TAG的调用。

在`_get_threads`方法中,找到以下代码段:

$query = DB::query("SELECT * FROM ".DB::table('forum_thread')." WHERE fid IN (".implode(',', $fids).") AND displayorder>='0' ORDER BY $orderby LIMIT $start, $limit");

在这段代码之后,添加以下代码来获取TAG信息:

$threadlist = array();
while($thread = DB::fetch($query)) {
    $thread['tags'] = array();
    $tagquery = DB::query("SELECT * FROM ".DB::table('common_tag')." WHERE itemid='".$thread['tid']."' AND type='tid'");
    while($tag = DB::fetch($tagquery)) {
      $thread['tags'][] = $tag['tagname'];
    }
    $threadlist[] = $thread;
}

### 3. 修改模板文件
接下来,您需要在模板文件中显示这些TAG信息。找到您正在使用的模板文件(通常是`template/default/forum/forumdisplay_list.htm`),在适当的位置添加以下代码来显示TAG:

<!--{if $thread['tags']}-->
    <div class="tags">
      <!--{loop $thread['tags'] $tag}-->
            <a href="search.php?mod=forum&srchtxt=$tag" target="_blank">$tag</a>
      <!--{/loop}-->
    </div>
<!--{/if}-->

### 4. 保存并测试
保存所有修改后的文件,并刷新您的论坛页面,查看是否成功显示了主题的TAG信息。

### 5. 注意事项
- 在进行任何修改之前,请务必备份相关文件,以防止出现不可预见的错误。
- 如果您使用的是自定义模板,请确保在正确的模板文件中进行修改。
- 如果您对代码不熟悉,建议在测试环境中进行修改和测试,以避免影响线上站点的正常运行。

通过以上步骤,您应该能够在DIY调用中成功显示主题的TAG信息。如果您在实施过程中遇到任何问题,欢迎随时在DZ插件网(https://www.dz-x.net/)寻求帮助。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: DIY调用主题标签TAG修改方法