dedecms如何实现tag标签伪静态
- 行业动态
- 2024-04-19
- 2
要在DedeCMS中实现tag标签的伪静态,可以按照以下步骤操作:
1. 修改系统配置文件
需要修改DedeCMS的系统配置文件,开启URL重写功能。
打开/include/common.inc.php文件,找到以下代码:
//是否使用文件缓存,默认为0不使用.设置为1将使用后台参数设置进行缓存 $cfg_use_cache = 0;
将其修改为:
//是否使用文件缓存,默认为0不使用.设置为1将使用后台参数设置进行缓存 $cfg_use_cache = 1;
2. 修改核心函数库
接下来,需要修改DedeCMS的核心函数库,以支持tag标签的伪静态。
打开/include/arc.archives.class.php文件,找到GetArcList函数,然后在该函数内部添加如下代码:
if(!empty($row['tag'])) { $row['typelink'] = '<a href="'.$GLOBALS['cfg_basedir'].'tag/'.$row['tag'].'.html">'.$row['tag'].'</a>'; }
这段代码的作用是在文章列表中显示tag标签,并为其生成一个指向对应tag页面的链接。
3. 创建tag控制器
为了实现tag标签的伪静态,需要创建一个用于处理tag页面请求的控制器。
在/plus目录下创建一个名为tag的文件夹,然后在该文件夹内创建一个名为index.php的文件。
在index.php文件中添加如下代码:
<?php defined('IN_DEDECMS') or exit('Access Denied'); require_once(DEDEINC.'/arc.listview.class.php'); $tid = isset($_GET['tid']) ? intval($_GET['tid']) : 0; $page = isset($_GET['page']) ? intval($_GET['page']) : 1; $row = 10; $totalRow = ''; $totalPage = ceil($totalRow / $row); $page = min($page, $totalPage); $page = max($page, 1); $offset = ($page 1) * $row; $dsql = new DedeSql("#__archives"); $where = " where (type='arc' or type='soft') and state=1 "; $where .= " and tag like '%".$tid."%'"; $orderby = " order by id desc "; $join = ''; $field = "id,title,arcrank,senddate,sortrank,litpic,type,tag,description,ismake,isreprint,iscommend,ischange,iscopy,islink,hits,pubdate,mid"; $archivesArr = $dsql>SetQuery($field); $archivesArr = $dsql>ExecuteNoQuery($where, $join, $orderby, $page, $row, $offset); $arclists = array(); while ($row = $archivesArr>FetchRow()) { $row['typelink'] = '<a href="'.$GLOBALS['cfg_basedir'].'arc'.$row['id'].'.html">'.$row['title'].'</a>'; $arclists[] = $row; } header("ContentType:text/html; charset=utf8"); include DedeTemplate().'/templets/default/tag.htm'; exit(); ?>
这段代码的作用是接收传入的tid参数(即tag ID),然后根据该参数查询包含该tag的文章,并将查询结果渲染到模板中。
4. 创建tag模板
需要创建一个用于展示tag页面的模板。
在/templets/default目录下创建一个名为tag.htm的文件,然后编辑该文件,添加以下内容:
<!DOCTYPE html> <html> <head> <meta charset="UTF8"> <title>Tag {$tid}</title> </head> <body> <h1>Tag: {$tid}</h1> <ul> {dede:arclist row='10'} <li><a href="[field:typelink/]">[field:title/]</a></li> {/dede:arclist} </ul> </body> </html>
这段HTML代码的作用是展示当前tag下的文章列表。
至此,DedeCMS的tag标签伪静态功能已经实现,现在访问http://yourdomain.com/tag/tagid.html(其中yourdomain.com是你的域名,tagid是具体的tag ID)即可看到对应的tag页面。
本站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本站,有问题联系侵删!
本文链接:http://www.xixizhuji.com/fuzhu/315879.html