如何用dedecms实现拼音显示文章标题页文件名?

/include/arc.archives.class.php文件中,找到GetFileName函数,添加以下代码:,,“php,$filename = $this>ConvertCharset($filename, 'UTF8', 'GBK');,$filename = $this>Pinyin($filename);,`,,在/include/helpers/helper.main.helper.php文件中,添加以下代码:,,`php,function Pinyin($string) {, $result = '';, $string = preg_replace("/[azAZ]/", "", $string); // 去掉英文字母, $string = iconv('UTF8', 'gbk', $string); // 转换编码, $len = strlen($string);, for ($i = 0; $i< $len; $i++) {, $char = substr($string, $i, 1);, if (ord($char) >= ord('a') && ord($char) true,, CURLOPT_HEADER => false,, CURLOPT_FOLLOWLOCATION => true,, CURLOPT_MAXREDIRS => 2,, CURLOPT_TIMEOUT => 30, );, $ch = curl_init();, curl_setopt_array($ch, $opts);, curl_setopt($ch, CURLOPT_URL, $url);, $result = curl_exec($ch);, curl_close($ch);, return $result;,},“,,这样,文章标题页文件名就会以拼音形式显示。

DedeCMS中,实现文章标题页文件名以拼音显示的方法如下:

如何用dedecms实现拼音显示文章标题页文件名?

1、修改文章命名规则:进入后台的网站栏目管理,找到需要修改的栏目,点击“高级选项”,在文章命名规则中,将默认的{typedir}/{Y}{M}{D}/{aid}.html修改为{typedir}/{pinyin}.html,这样设置后,文章的URL路径将以标题的拼音来显示。

2、去除不必要的后缀:按照上述设置后,可能会发现生成的文章路径后面多了一个下划线和数字(如zhanyouwangshishenmea_1.html),为了去掉这个多余的部分,需要修改文件include/inc_channel_unit_function.php,在这个文件中,找到大约50多行的地方,有一行代码是$articleRule = str_replace("{pinyin}",GetPinyin($title)."_".$aid,$articleRule);,将其中的."_".$aid删除即可。

3、修改英文单词间的连接符:如果文章标题是英文的,系统默认会在单词之间加上下划线(_),这对SEO并不友好,为了将其改为连字符(),需要修改文件include/inc/inc_fun_funAdmin.php,在文件中,找到以下代码段:

for($i=0;$i<$slen;$i++){
if(ord($str[$i])>0x80)
{
$c = $str[$i].$str[$i+1];
$i++;
if(isset($pinyins[$c])){
if($ishead==0) $restr .= $pinyins[$c];
else $restr .= $pinyins[$c][0];
}else $restr .= "_";
}else if( eregi("[az09]",$str[$i]) ){ $restr .= $str[$i]; }
else{ $restr .= "_"; }
}

将其中的"_"替换为"",并添加相应的逻辑以确保不会出现连续的连字符或在字符串末尾出现连字符。

通过以上步骤,就可以实现在DedeCMS中让文章标题页的文件名以拼音形式显示。

FAQs

1、为什么修改后的文章路径后面会有多余的下划线和数字?

答:这是因为DedeCMS在生成拼音路径时,会默认添加一个下划线和文章ID作为区分,如果不希望显示这个多余的部分,可以通过修改include/inc_channel_unit_function.php文件中的相关代码来实现。

2、如何确保英文标题中的单词之间使用连字符而不是下划线?

答:需要修改include/inc/inc_fun_funAdmin.php文件,将处理拼音的代码段中的下划线替换为连字符,并确保不会出现连续的连字符或在字符串末尾出现连字符。

| 步骤 | 说明 | 代码示例 |

| | | |

| 1. 准备工作 | 确保您的 Dedecms 网站已经安装并配置好,并且安装了拼音插件(如“Dede拼音”插件),如果没有安装,请先安装插件。 | 无 |

| 2. 添加拼音字段 | 在文章模型中添加一个用于存储文章标题拼音的字段,这通常是在后台管理系统中通过模型管理来完成的。 | 在模型管理中添加一个名为“拼音”的字段,类型为“单行文本”。 |

| 3. 生成拼音 | 在文章发布的钩子函数中,调用拼音插件生成的函数来生成文章标题的拼音,并存储到新添加的字段中。 | “`php

function articleArcAddHandle(&$fields, &$addData) {

if (!isset($addData[‘title_pinyin’])) {

$addData[‘title_pinyin’] = Pinyin::getPinyin($addData[‘title’]);

}

“`

| 4. 修改文件名生成逻辑 | 在生成文章标题页文件名的地方,使用拼音字段来生成文件名,通常这个逻辑在文章发布或修改时触发。 | “`php

function articleArcAddHandle(&$fields, &$addData) {

// …

$addData[‘arc Mid’] = Pinyin::getPinyin($addData[‘title’]);

// …

“`

| 5. 更新模板文件 | 在文章标题页的模板文件中,修改文件名引用,使其使用生成的拼音,假设您的模板文件名为`article_read.htm`,那么修改如下: | “`html

{dede:field.title/}_{dede:field.title_pinyin/}

“`

| 6. 测试 | 发布或修改一篇文章,并查看生成的标题页文件名是否正确。 | 无 |

| 7. 优化 | 根据需要,优化拼音生成的逻辑,比如处理特殊字符、空格等。 | 根据实际情况调整拼音插件或自定义逻辑。 |

注意:以上代码示例假设您已经安装了名为“Pinyin”的拼音插件,并且插件提供了`getPinyin`函数来生成拼音,如果您的插件不同,请根据实际情况调整代码。

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1205428.html

(0)
未希的头像未希新媒体运营
上一篇 2024-10-12 03:34
下一篇 2024-10-12

相关推荐

  • Dedecms RSS地图地址多出网址问题如何有效解决?

    解决Dedecms生成RSS地图地址出错,地址多了一个网址的问题问题描述在使用Dedecms系统生成RSS地图时,生成的地址链接中多了一个网址,导致链接格式不正确,影响了RSS地图的正常使用,解决步骤1、检查模板文件 – 进入Dedecms后台,找到生成RSS地图的模板文件,通常是/templets/defau……

    2024-10-07
    03
  • 如何找回或重置忘记的DedeCMS系统管理员账号密码?

    如果DedeCMS系统管理员帐号密码忘记了,可以通过重置管理员密码的方式来解决。具体操作步骤如下:,,1. 使用FTP或其他文件传输工具登录到服务器。,2. 找到DedeCMS的安装目录,进入该目录。,3. 在该目录下找到名为“data”的文件夹,进入该文件夹。,4. 在“data”文件夹中找到名为“common.inc.php”的文件,使用文本编辑器打开它。,5. 在文件中找到以下代码段:,,“php,$cfg_df_adminpw = ‘admin’; // 默认管理员账号密码,`,,6. 将上述代码中的’admin’替换为您想要设置的新密码,,,`php,$cfg_df_adminpw = ‘new_password’; // 新管理员账号密码,“,,7. 保存并关闭“common.inc.php”文件。,8. 重新登录DedeCMS后台,使用新的密码进行登录。,,通过以上步骤,您可以成功重置DedeCMS系统管理员帐号密码。这种方法仅适用于您有服务器访问权限的情况。如果您没有服务器访问权限,请联系网站管理员或开发人员寻求帮助。

    2024-10-07
    04
  • 如何在DedeCMS模板中成功使用Cu3er漂亮3D幻灯片效果?

    Cu3er漂亮3D幻灯在dedecms模板中的成功使用,主要依赖于准确的插件安装和合理的代码嵌入。下载并安装Cu3er的3D幻灯插件。在DedeCMS模板中适当的位置插入插件代码。调整CSS样式以匹配网站的整体设计。

    2024-09-01
    022
  • 如何在DedeCMS中轻松实现搜索结果按点击量排序?

    在DedeCMS中,要实现搜索结果按点击量排序,可以通过修改搜索模块的SQL查询语句来实现。具体操作如下:,,1. 打开DedeCMS后台管理界面,进入“模板管理”˃“标签模板管理”。,2. 找到名为“arclist”的标签模板,点击“编辑”按钮。,3. 在编辑界面中,找到以下代码段:,,“,$sorta = “click”;,$sortdesc = “DESC”;,`,,4. 将上述代码段修改为:,,`,$sorta = “click”;,$ordersql = ” order by $sorta $sortdesc”;,“,,5. 保存修改后的标签模板。,6. 重新生成搜索页面缓存。,,完成以上步骤后,DedeCMS的搜索结果将按照点击量从高到低进行排序。

    2024-10-14
    02

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

免费注册
电话联系

400-880-8834

产品咨询
产品咨询
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购  >>点击进入