十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
织梦DEDECMS文章拼音命名规则去掉ID的方法

1. 问题描述
在织梦DEDECMS系统中,文章的URL默认是按照“年/月/日/ID.html”的规则来命名的,为了更好地进行SEO优化,我们希望能够将URL中的ID去掉,改为按照文章标题的拼音来命名。
2. 解决方案
要实现这个功能,我们需要修改织梦DEDECMS系统的文件,具体步骤如下:
2.1 修改数据库表结构
我们需要修改数据库中的数据表结构,将arctiny表中的typedir字段类型修改为varchar,以便存储文章标题的拼音。
ALTER TABLEarctinyMODIFY COLUMNtypedirVARCHAR(255) NOT NULL;
2.2 修改文件
接下来,我们需要修改以下几个文件:
2.2.1 修改arc.listview.class.php文件
找到arc.listview.class.php文件,修改GetArcList方法,将文章标题的拼音赋值给typedir字段。
function GetArcList($row, $reid = 0) {
$row = parent::GetArcList($row, $reid);
if ($this>TypeLinkUrl != '') {
$pinyin = new Pinyin();
foreach ($row as $k => $v) {
$v[3]['typedir'] = $pinyin>getPinyin($v[3]['title']);
}
}
return $row;
}
2.2.2 修改arc.archives.class.php文件
找到arc.archives.class.php文件,修改GetArcInfo方法,将文章标题的拼音赋值给typedir字段。
function GetArcInfo($aid) {
$row = parent::GetArcInfo($aid);
if ($this>TypeLinkUrl != '') {
$pinyin = new Pinyin();
$row['typedir'] = $pinyin>getPinyin($row['title']);
}
return $row;
}
2.2.3 修改arc.arcurl.class.php文件
找到arc.arcurl.class.php文件,修改GetArcUrl方法,将生成的URL中的ID去掉。
function GetArcUrl($aid, $page, $r, $addon) {
$arcinfo = ArcArchives::GetArcInfo($aid);
$typedir = $arcinfo['typedir'];
$arcurl = $this>TypeLinkRul($typedir);
$arcurl .= '/' . $arcinfo['dateline'] . '.html';
return $arcurl;
}
2.3 更新缓存
完成以上修改后,需要更新系统的缓存,登录织梦后台,点击“更新缓存”按钮即可。
至此,我们已经成功地实现了在织梦DEDECMS系统中去掉文章URL中的ID,改为按照文章标题的拼音来命名。