在使用 DedeCMS 进行内容管理时,调用文章标题是一项非常常见的需求。然而,在实际应用中,我们可能需要对标题的字数进行限制,并在超出字数限制时自动添加省略号(…)。无论是首页、列表页还是内容页,都可以通过适当修改标签实现这一功能。
通常情况下,DedeCMS 的文章调用代码类似于以下形式:
{dede:arclist row='10'}
[field:title/]
{/dede:arclist}
如果需要限制标题的字数,可以通过添加参数 titlelen='90' 来实现:
{dede:arclist row='10' titlelen='90'}
[field:title/]
{/dede:arclist}
不过,这种方法虽然可以限制标题长度,但并不会自动添加省略号。为了解决这个问题,我们可以将 [field:title] 替换为更复杂的自定义代码。
以下是实现自动添加省略号的具体方法:
{dede:arclist row='10'}
[field:fulltitle runphp='yes']
$titlefull = @me;
$titleshow = cn_substr($titlefull, 90);
if ($titlefull != $titleshow) {
$dot = "…";
} else {
$dot = "";
}
@me = $titleshow . $dot;
[/field:fulltitle]
{/dede:arclist}
上述代码的核心在于 runphp='yes' 属性,它允许我们在标签中嵌入 PHP 代码。通过判断截取后的标题是否与原始标题一致,决定是否添加省略号。
当然,还可以采用另一种更简洁的方式:
{dede:arclist row='10'}
[field:fulltitle function='( strlen("@me") > 90 ? cn_substr("@me", 90) . "…" : "@me" )'/]
{/dede:arclist}
这种方式利用了 function 属性,直接在标签内部完成字符串处理和判断逻辑,代码更加简洁明了。
无论选择哪种方法,都可以实现标题字数限制并自动添加省略号的功能。这对于优化用户体验、提升页面美观度具有重要作用。
注意:在实际操作中,请确保服务器环境支持 PHP,并根据实际情况调整字数限制值(如本例中的 90)以满足具体需求。