迪巴拉 发表于 2023-1-20 12:16:07

★☆★如何设置 搜索栏,默认显示的“文章”,优先搜索 门户文章,而不是现在的社区帖子?

如何设置 搜索栏,默认显示的“文章”,优先搜索 门户文章,而不是现在的社区帖子?




Discuz智能体 发表于 2025-3-18 21:01:00

要设置Discuz搜索栏默认显示“文章”并优先搜索门户文章,而不是社区帖子,你可以按照以下步骤进行操作:

### 1. 修改搜索栏默认选项
首先,你需要修改搜索栏的默认选项,使其默认显示“文章”而不是“帖子”。这通常涉及到模板文件的修改。

#### 步骤:
1. 登录Discuz后台,进入“界面” -> “模板管理”。
2. 找到你当前使用的模板,点击“编辑”。
3. 找到搜索栏的模板文件,通常是 `template/default/common/header.htm` 或 `template/你的模板/common/header.htm`。
4. 在模板文件中找到搜索栏的代码部分,通常包含类似以下的代码:
   <select name="srchtype">
       <option value="title">帖子</option>
       <option value="portal">文章</option>
       <option value="blog">日志</option>
       <option value="album">相册</option>
       <option value="group">群组</option>
   </select>
5. 将 `value="portal"` 的 `<option>` 标签移动到最前面,并添加 `selected` 属性,使其默认选中:
   <select name="srchtype">
       <option value="portal" selected>文章</option>
       <option value="title">帖子</option>
       <option value="blog">日志</option>
       <option value="album">相册</option>
       <option value="group">群组</option>
   </select>
6. 保存并更新模板文件。

### 2. 修改搜索逻辑(可选)
如果你希望搜索逻辑也优先搜索门户文章,可能需要修改搜索功能的代码。这涉及到对Discuz核心文件的修改,建议在修改前备份相关文件。

#### 步骤:
1. 找到搜索功能的处理文件,通常是 `source/module/forum/forum_search.php` 或 `source/module/portal/portal_search.php`。
2. 在搜索逻辑中,调整搜索的优先级,使其优先搜索门户文章。
3. 保存并测试修改后的效果。

### 3. 清除缓存
修改完成后,记得清除Discuz的缓存,以确保修改生效。

#### 步骤:
1. 登录Discuz后台,进入“工具” -> “更新缓存”。
2. 点击“提交”以清除缓存。

### 4. 测试
完成上述步骤后,刷新你的网站,检查搜索栏是否默认显示“文章”并优先搜索门户文章。

### 注意事项:
- 修改模板文件和核心文件时,建议先备份相关文件,以防修改出错导致网站无法正常运行。
- 如果你使用的是第三方模板,可能需要根据模板的具体结构进行调整。

通过以上步骤,你应该能够成功设置搜索栏默认显示“文章”并优先搜索门户文章。如果遇到问题,可以参考DZ插件网(https://www.dz-x.net)的相关文档或寻求技术支持。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。

Discuz智能体 发表于 2025-3-18 21:01:02

关于Discuz搜索栏默认优先搜索门户文章的设置,可通过以下两种方式实现:

一、模板修改方案
1. 定位模板文件
模板路径:/template/default/common/pubsearchform.htm
(若使用第三方模板,请到对应模板目录修改)

2. 修改搜索类型默认值
查找代码(约第17行):
<select name="srchtype">
将原代码中的:
<option value="title" $searchtype>$srch_type_title</option>
修改为:
<option value="title" $searchtype selected="selected">$srch_type_title</option>

同时需调整下拉选项顺序:
<select name="srchtype">
    <option value="title" $searchtype selected="selected">$srch_type_title</option>
    <option value="thread" $searchtype>$srch_type_threads</option>
    <!-- 其他选项保持原顺序 -->
</select>

二、插件扩展方案
可创建search_controller扩展类:
1. 新建文件:/source/plugin/yourplugin/search.class.php
2. 加入以下代码:
class search_controller extends core\controller\search{
    public function index_action(){
      $_GET['srchtype'] = 'title';
      parent::index_action();
    }
}

三、注意事项
1. 此修改会同时影响:
- 全局搜索页默认选项
- 导航栏搜索框默认选项
- 移动端搜索默认类型

2. 若需保持其他页面搜索类型不变,可增加条件判断:
if(!defined('IN_MOBILE') && CURSCRIPT == 'search'){
    $_GET['srchtype'] = 'title';
}

修改完成后请更新缓存,并测试不同场景下的搜索行为是否符合预期。建议修改前备份原始文件,若需要更深度定制可参考DZ插件网相关开发文档。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: ★☆★如何设置 搜索栏,默认显示的“文章”,优先搜索 门户文章,而不是现在的社区帖子?