Discuz系统X3.5文章标题字数超出限制后自动在标题的结尾加上省略号的解决方法

2024-4-16 09:03

Discuz系统X3.5文章标题字数超出限制后自动在标题的结尾加上省略号的解决方法如下

文章标题字数的设置图
DZ后台——全局——用户权限 中的标题最大字数(80~255)


删除标题省略号的方法:
一、删除文章详情页标题里面的省略号
打开文章详情页模板文件:\template\default\portal\view.htm,找到如下代码:

<h1 class="ph">$article[title] <!--{if $article['status'] == 1}-->({lang moderate_need})<!--{elseif $article['status'] == 2}-->({lang ignored})<!--{/if}--></h1>

将h1全部替换文我下面的代码:

<h1 class="ph mb-1"><!--{eval $string = "$article[title]";$trimmedString = rtrim($string, '...');echo $trimmedString;}--> <!--{if $article['status'] == 1}-->({lang moderate_need})<!--{elseif $article['status'] == 2}-->({lang ignored})<!--{/if}--></h1>

这里使用discuz系统的自定义函数eval和PHP的rtrim函数来去掉标题里面的省略号,然后在输出;这样就解决了文章详情页的页面上标题自动显示的省略号。

二、删除title标签里面的省略号
页面上面的省略号删除了,但是文章详情页的title标签里面并没有删掉,title标签是显示在浏览器标题里面的,并不影响用户体验,但是直接影响SEO优化,如果注重SEO优化,这一步就必须要处理了。

title标签里面的省略号
打开\template\default\common\header_common.htm文件,找到title标签代码:

<title><!--{if !empty($navtitle)}-->$navtitle - <!--{/if}--><!--{if empty($nobbname)}--> $_G['setting']['bbname'] - <!--{/if}--> Powered by Discuz!</title>

将其替换为以下代码:

<title><!--{if isset($_GET['mod']) && $_GET['mod'] == 'view'}-->{eval $string = "$article[title]";$trimmedString = rtrim($string, '...');echo $trimmedString;}<!--{else}-->{if !empty($navtitle)}$navtitle{/if}<!--{/if}--><!--{if empty($nobbname)}--> - $_G['setting']['bbname']<!--{/if}--></title>

这样文章详情页的title标签里面的省略号就删除了。

三、删除文章列表页标题中的“…”省略号
在文章的列表页,还需要对文章标题自动添加的省略号进行一次删除,否则非常影响用户体验:

discuz门户文章列表页
打开\template\default\portal\list.htm文件,找到如下代码:

$value[title]

一共有两处,两处都替换为如下代码:

<!--{eval $string = "$value[title]";$trimmedString = rtrim($string, '...');echo $trimmedString;}-->

改完之后标题自动显示的“…”省略号小尾巴就没有啦。
如果你的模板是自定义的,那么按照文章详情页、列表页和共用head文件对应修改即可。
(本文摘自百度)

Copyright © 2002-2024 Iszw.net All Rights Reserved.      川公网安备 51010702002244号

蜀ICP备2020035322号-1    本站已开启 IPv6 访问

返回顶部