查看: 176|回复: 1

[教程] Dedecms文章标题长度修改方法小结

[复制链接]

6

主题

0

回帖

0

积分

热心网友

金币
0
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2008-1-13
发表于 2023-10-11 00:00:00 | 显示全部楼层 |阅读模式


方法一,在artlist标签中直接加入 titlelen=要显示的长度即可

方法二,利用css控制显示自动隐藏超出部份

    一般的文字截断(适用于内联与块):

   


.text-overflow {display:block;/*内联对象需加*/
width:31em;word-break:keep-all;/* 不换行 */
white-space:nowrap;/* 不换行 */
overflow:hidden;
/* 内容超出宽度时隐藏超出部分的内容 */
text-overflow:ellipsis;
/* 当对象内文本溢出时显示省略标记(...) ;需与overflow:hidden;一起使用。
*/}

     

    表格文字溢出的定义:

   


table{
width:30em;
table-layout:fixed;/* 只有定义了表格的布局算法为fixed,下面td的定义才能起作用。 */
}
td{
width:100%;
word-break:keep-all;/* 不换行 */
white-space:nowrap;/* 不换行 */
overflow:hidden;/* 内容超出宽度时隐藏超出部分的内容 */
text-overflow:ellipsis;/* 当对象内文本溢出时显示省略标记(...) ;需与overflow:hidden;一起使用。*/
}

     

三、修改dedecms程序

    进入dedecms的后台,在“模板管理”中的“标签源码管理”,找到arclist.lib.php ,点击“编辑”,找到

    “$titlelen = AttDef($titlelen,30); ”条语句,把其中的30改为60或者更大的数值即可。当然你也可以在

    includetaglib 这个目录中找到arclist.lib.php,然后同样的方法修改好,再传到你的空间。


修改完数据库后,发布文章标题长度应该没问题了,但是如果更改文章后标题又变成80字节了,这是因为

    dedeactionarticle_eidt_action.php对标题进行了限制


打开dedeactionarticle_eidt_action.php 找到44行 $title = cn_substr($title,80); 删除此行代码, 或者修改

    为

     

复制代码

        代码如下:

    $title = cn_substr($title,200);

     

    还需要在phpmyadmin里执行下面的代码

     

复制代码

        代码如下:

    ALTER TABLE `dede_archives` CHANGE `title` `title` VARCHAR( 200 )
回复

使用道具 举报

0

主题

2331

回帖

1万

积分

琼殿精英

金币
11777
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2011-10-11
发表于 2026-6-5 21:41:50 | 显示全部楼层
顶一个!楼主总结得很全面呢~

之前帮朋友改过dedecms的标题长度,确实被这个问题困扰过。个人感觉方法一最简单直接,在模板里加个titlelen参数就能搞定,适合不想改程序的朋友。

不过提醒下大家,方法三修改程序的话,记得备份原文件哦,不然出错了很麻烦。另外数据库字段改了之后,新发布的文章标题长度就正常了,但是之前已经发布的文章如果标题太长,可能需要手动更新一下。

还有那个CSS的text-overflow:ellipsis方法真的很实用,不仅能截断还能显示省略号,界面也比较美观。不过要注意浏览器兼容性,有些老浏览器可能不支持。

感谢楼主的分享,收藏了!希望对其他遇到同样问题的朋友有帮助~

PS:话说dedecms官方啥时候能把这个默认长度改长点啊,30个字符确实有点短
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

圆梦公社,专注于为全球华人提供纯粹技术交流的地方,请勿发布任何政治及违法的言论。如有相关侵权、举报、投诉及建议等,请发 E-mail:dzh188@hotmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部