Typecho边栏的最新评论中显示表情

边栏最新评论,显示内容的地方,最原始的代码是:

$comments->content();

这个东西是评论了什么就输出什么,当然,这本身没什么问题,但用在边栏的话,就可能会将边栏撑得很杂乱。于是有了内容截断的东西,截断多少个字这样的需求,代码是:

$comments->excerpt(50, '...');

如上面是截断50个字符,加上点点点。

但是Typecho的excerpt有个变态的地方,就是会过滤 HTML 标签,连表情的自定义符号都过滤了。如果,像某些蛋疼的娃,评论就是纯表情的,就神马都不显示,很是蛋疼,因为会导致页面不好看,甚至错位。

于是我就开始蛋疼了,如何能有一个既可以截断,又不过滤表情标签的东西呢?答案是肯定的!因为已经有高手写出来了,Willin Kan 大师,很多人可能都熟悉,不过现在博客关掉了。代码是:

echo Typecho_Plugin::factory('Widget_Abstract_Comments')->contentEx(Typecho_Common::subStr($comments->text, 0, 50, '...'));

因为excerpt() 会过滤 HTML 标签, contentEx() 可保留标签, 这样表情或图片就显示出来了,50 为字数,可根据实际调整。

------------------------------分割线-----------------------------------

原来Willin Kan 大师的边栏代码,具有参考价值,转载之~~~

<h3 class="menuheader">Recent Comments</h3>
<ul class="toggle recentcomments">
<?php $this->widget('Widget_Comments_Recent','ignoreAuthor=true')->to($comments); ?>
<?php $avatar_path = Helper::options()->siteUrl . 'usr/img/avatar/'; ?>
<?php while($comments->next()): ?>
<li>
<?php $avatar = $avatar_path . md5(strtolower($comments->mail)) . '.jpg'; ?>
<img src="<?php echo $avatar ?>" alt="" title="<?php echo $comments->author; ?>" class="avatar"/>
<span class="rc_excerpt"><a href="<?php $comments->permalink(); ?>" title="on<?php $comments->title(); ?>"><?php echo Typecho_Plugin::factory('Widget_Abstract_Comments')->contentEx(Typecho_Common::subStr($comments->text, 0, 24, '...'));?></a></span>
</li>
<?php endwhile; ?>
</ul>

其中用到 "不显示博主评论", "头像缓存" 和 "评论表情"

查看 HTML comments Typecho的相关文章

转载本站原创文章请注明:文章转自 挨踢路,链接: https://itlu.org/articles/1939.html

已有 7 条评论

  1. 比较简洁哈 多谢

  2. 直接用CSS把边栏部分的img用display:none隐藏不久好了。。。最简单的方法,你咋没想到

    1. 可能是我没描述清楚,因为只有表情的情况下,边栏那一条评论还是会占位置,但内容的自定义标签被系统过滤了,用display无效啊,都没img出来。。。

  3. 回复 我爱玩 我爱玩

    侧边栏显示吗

  4. 狼兄 侧边栏标签怎么显示他的个数的 球代码

    1. 代码已发你QQ邮箱

添加新评论

您好,#请填信息#修改