求X3.5门户相关文章推荐代码
求X3.5门户相关文章推荐代码百度一下,看用这个方法不能用,还有别的方法吗
操作方法很简单,在指定文件内加入一段代码,保存后上传到源文件目录内,在到Discuz后台更新全站缓存,就可以看到效果了,详细信息如下:
文件路径:..\source\module\portal\portal_view.php
文件名:portal_view.php
在该文件中找到以下代码:
$article['allowcomment'] = !empty($cat['allowcomment']) && !empty($article['allowcomment']) ? 1 : 0;
找到了以后,不是修改,而是在这个最新评论代码上面加上如上图所示的相关阅读代码哦,实现相关阅读的代码如下:
$article['relate'] = array();$query = DB::query("SELECT aid,titleFROM ".DB::table('portal_article_title')." where catid='$article' order by rand() limit 12");while ($value = DB::fetch($query)) {$value['uri'] = fetch_article_url($value);$article['relate'][] = $value;}
作者:Microant
链接:https://www.jianshu.com/p/42ba5d6ca05d
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
我知道答案 回答被采纳将会获得1 贡献 已有1人回答 $article['relate'] = array();$query = DB::query("SELECT aid,titleFROM ".DB::table('portal_article_title')." where catid='$article' order by rand() limit 12");while ($value = DB::fetch($query)) {$value['uri'] = fetch_article_url($value);$article['relate'][] = $value;} 在Discuz! X3.5中,实现门户相关文章推荐的功能可以通过修改`portal_view.php`文件来实现。你提到的代码片段是一个常见的实现方式,但需要注意的是,代码中可能存在一些小问题,比如SQL查询中的`$article`变量可能没有正确传递。下面是一个改进后的代码示例,确保相关文章推荐功能能够正常工作。
### 修改步骤:
1. **找到文件路径**:
- 文件路径:`source/module/portal/portal_view.php`
2. **找到代码位置**:
- 在文件中找到以下代码:
$article = !empty($cat) && !empty($article) ? 1 : 0;
3. **添加相关文章推荐代码**:
- 在上述代码的**上方**添加以下代码:
// 获取当前文章的catid
$catid = $article['catid'];
// 查询相关文章
$related_articles = array();
$query = DB::query("SELECT aid, title FROM ".DB::table('portal_article_title')." WHERE catid='$catid' AND aid != '$article' ORDER BY rand() LIMIT 12");
while ($value = DB::fetch($query)) {
$value['url'] = fetch_article_url($value);
$related_articles[] = $value;
}
// 将相关文章数据传递给模板
$article['related_articles'] = $related_articles;
4. **在模板中显示相关文章**:
- 打开门户文章模板文件(通常是`template/default/portal/view.htm`),在合适的位置添加以下代码来显示相关文章:
<div class="related-articles">
<h3>相关文章推荐</h3>
<ul>
<!--{loop $article['related_articles'] $related}-->
<li><a href="{$related['url']}">{$related['title']}</a></li>
<!--{/loop}-->
</ul>
</div>
5. **保存并上传文件**:
- 保存修改后的`portal_view.php`文件,并将其上传到服务器上的相应目录。
6. **更新缓存**:
- 登录Discuz!后台,进入“工具” -> “更新缓存”,点击“提交”以更新全站缓存。
### 代码解释:
- **$catid = $article['catid'];**:获取当前文章的栏目ID。
- **$query = DB::query(...);**:查询同一栏目下的其他文章,排除当前文章,并随机获取12篇文章。
- **fetch_article_url($value);**:生成文章的URL。
- **$article['related_articles'] = $related_articles;**:将相关文章数据传递给模板。
### 注意事项:
- 确保代码中的变量名和数据库表名与你的Discuz!版本一致。
- 如果你使用的是自定义模板,请确保在正确的模板文件中添加相关文章显示的代码。
通过以上步骤,你应该能够在门户文章页面中看到相关文章推荐的功能。如果还有其他问题,欢迎继续提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页:
[1]