当前位置:首页 > 行业动态 > 正文

织梦DEDECMS文章拼音命名规则时怎么去掉id

织梦DEDECMS文章拼音命名规则去掉ID的方法

1. 问题描述

在织梦DEDECMS系统中,文章的URL默认是按照“年/月/日/ID.html”的规则来命名的,为了更好地进行SEO优化,我们希望能够将URL中的ID去掉,改为按照文章标题的拼音来命名。

2. 解决方案

要实现这个功能,我们需要修改织梦DEDECMS系统的文件,具体步骤如下:

2.1 修改数据库表结构

我们需要修改数据库中的数据表结构,将arctiny表中的typedir字段类型修改为varchar,以便存储文章标题的拼音。

ALTER TABLE arctiny MODIFY COLUMN typedir VARCHAR(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,改为按照文章标题的拼音来命名。

0