内容优化

内容优化

Products

当前位置:首页 > 内容优化 >

xunrui迅睿cms 怎么设置URl规则,内容页获取内容标题首字母作为url

96SEO 2025-07-10 11:46 15


在创建定义URL规则的时候,毕竟系统自带的通配符变量有限,如果发现通配符变量没法满足你的实际需求

image.png

我们可以使用自定义函数来做,当然需要有PHP基础的人才行~


比如,我在模块内容的url中想把标题title字段转换为拼音,

/news/标题拼音.html

作为url的这种情况,就没办法使用默认的通配符了,实现步骤


1、定义函数返回url规则代码

函数文件是config/custom.php,定义个名字,随便自己取,xxxurl

function xxxurl($data) {
    $py = \Phpcmf\Service::L('pinyin')->result($data['title']); // 把标题转换拼音
    $url = "/news/".$py.".html"; // url规则:news/pinyin.html
    dr_mkdirs(WRITEPATH.'myid/'); // 创建id缓存存储目录
    file_put_contents(WRITEPATH.'myid/'. md5(trim($url, '/')).'.txt', $data['id']); // 将id号存储缓存文件
    return $url; //返回我自己的
}


2、在规则里面填写新标签:

{xxxurl($data)}

image.png


3、然后更新内容url地址,使url地址生效

4、编写伪静态解析规则,因为这是你自己写的函数,所以无法用系统生成的代码了

5、打开config/rewrite.php,加入代码

// 判断url是否是来自自定义函数
if (CMSURI) {
    $myfile = WRITEPATH.'myid/'.md5(urldecode(CMSURI)).'.txt';
    if (is_file($myfile)) {
        $id = file_get_contents($myfile);
        if ($id) {
            return [
                CMSURI => 'index.php?c=show&id='.$id, // 这里写内容的地址
            ];
        }
    }
}

最终效果:

使用自定义函数作为URL规则

本文转自:https://www.xunruicms.com/doc/659.html

以上是以标题的全拼作为url,要想只提取标题首字母的话,需要将result函数第二个参数设置为0,完整代码如下:

function xxxurl($data) {
$py = \Phpcmf\Service::L('pinyin')->result($data['title'],0); // 把标题转换拼音首字母
$url = "/blogs/".$py.".html"; 
dr_mkdirs(WRITEPATH.'myid/'); 
file_put_contents(WRITEPATH.'myid/'. md5(trim($url, '/')).'.txt', $data['id']); 
return $url;
}


标签:

提交需求或反馈

Demand feedback