dz门户搜索框出来的结果页面对应的链接无法更新? New
需求:搜索框搜索文章两个字,会出来所有文章对应的结果页面,需求是把这个链接保存,新建一个文章按钮,把链接给到文章按钮,想要形成的效果是用户点击文章按钮,就会出来文章二字形成的搜索结果页面。但是在实际操作中发现,这个链接是动态的searchid且随时在发生变化,这个链接仅能够代表当时生成的页面,不代表最新的链接,且还会失效过期。那么,此需求能否实现?怎么实现?请教大神。如不能通过链接的方法实现,能通过其他什么办法实现用户点击文章按钮出来一个关于文章二字的所有文章和帖子页面么?想不到其他办法了。
我知道答案 回答被采纳将会获得1 贡献 已有0人回答 要实现用户点击“文章”按钮后显示所有包含“文章”关键词的文章和帖子页面,可以通过以下几种方法来实现:
### 方法一:使用静态搜索链接
虽然默认的搜索链接是动态的,但你可以通过自定义搜索参数来生成一个静态的链接。具体步骤如下:
1. **生成静态搜索链接**:
- 你可以手动构造一个搜索链接,使用固定的搜索参数。例如:
https://www.yourdomain.com/search.php?mod=forum&searchid=1&orderby=lastpost&ascdesc=desc&searchsubmit=yes&kw=文章
- 这里的 `kw=文章` 是搜索关键词,`mod=forum` 表示搜索范围是论坛。
2. **保存链接**:
- 将这个链接保存到你的文章按钮中。
3. **更新搜索逻辑**:
- 如果你希望这个链接始终返回最新的搜索结果,可以在后台设置搜索结果的缓存时间较短,或者禁用缓存。
### 方法二:使用自定义搜索页面
你可以创建一个自定义的搜索页面,专门用于显示包含“文章”关键词的搜索结果。具体步骤如下:
1. **创建自定义搜索页面**:
- 在模板文件中创建一个新的页面模板,例如 `search_article.htm`。
- 在这个模板中,使用 Discuz 的搜索 API 或直接调用搜索函数来获取包含“文章”关键词的搜索结果。
2. **调用搜索函数**:
- 在 `search_article.htm` 中,使用以下代码来调用搜索函数:
<?php
$search_result = C::t('forum_post')->fetch_all_by_search('文章', 0, 10);
foreach ($search_result as $result) {
echo $result['subject'] . '<br>';
}
?>
- 这个代码会获取包含“文章”关键词的前10条帖子,并显示它们的标题。
3. **创建按钮链接**:
- 在文章按钮中,链接到这个自定义搜索页面:
<a href="https://www.yourdomain.com/search_article.htm">文章</a>
### 方法三:使用插件或扩展
如果你不想手动修改代码,可以考虑使用现有的插件或扩展来实现这个功能。你可以在 DZ插件网(https://www.dz-x.net/)上搜索相关的插件,或者联系插件开发者定制一个符合你需求的插件。
### 方法四:使用 JavaScript 动态生成搜索链接
你可以使用 JavaScript 在用户点击按钮时动态生成搜索链接,并跳转到搜索结果页面。具体步骤如下:
1. **在页面中添加按钮**:
<button id="searchArticleButton">文章</button>
2. **使用 JavaScript 生成链接**:
document.getElementById('searchArticleButton').onclick = function() {
var searchUrl = 'https://www.yourdomain.com/search.php?mod=forum&kw=文章';
window.location.href = searchUrl;
};
3. **确保搜索参数正确**:
- 确保 `mod=forum` 和 `kw=文章` 参数正确,以便搜索范围是论坛,并且关键词是“文章”。
### 总结
以上几种方法都可以实现用户点击“文章”按钮后显示所有包含“文章”关键词的文章和帖子页面。你可以根据你的技术能力和需求选择合适的方法。如果你对代码不熟悉,建议使用插件或扩展来实现这个功能。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页:
[1]