Typecho完美实现回复可见功能
之前转载过这么一篇文章《typecho非插件实现回复可见功能》可以实现回复可见功能但是有个问题在文章列表页展示文章缩略内容时如果回复可见内容刚好在缩略内容的位置上时就会暴露出来同时Feed里面也会暴露这个问题那么如何解决呢下面请看如何几近完美的实现回复可见功能步骤一就是《typecho非插件实现回复可见功能》里面的内容将post.php中的content(); ?换成select()-from(table.comments) -where(cid ?,$this-cid) -where(mail ?, $this-remember(mail,true)) -where(status ?, approved) //只有通过审核的评论才能看回复可见内容 -limit(1); $result $db-fetchAll($sql); if($this-user-hasLogin() || $result) { $content preg_replace(/\[hide\](.*?)\[\/hide\]/sm,$1,$this-content); } else{ $content preg_replace(/\[hide\](.*?)\[\/hide\]/sm,此处内容需要评论回复后方可阅读。,$this-content); } echo $content ?步骤二解决缩略内容和feed暴露问题。在functions.php中加入如下代码即可Typecho_Plugin::factory(Widget_Abstract_Contents)-excerptEx array(myyodux,one); Typecho_Plugin::factory(Widget_Abstract_Contents)-contentEx array(myyodux,one); class myyodux { public static function one($con,$obj,$text) { $text empty($text)?$con:$text; if(!$obj-is(single)){ $text preg_replace(/\[hide\](.*?)\[\/hide\]/sm,,$text); } return $text; } }就是用插件接口在缩略内容输出之前隐藏掉或者替换掉回复可见内容同时使用if判断来针对非single页面进行隐藏。步骤三使用方法在写文章需要隐藏部分内容时用以下写法(去掉)[hide]要隐藏的内容[/hide]css参考样式.reply2view { background:#f8f8f8; padding:10px 10px 10px 40px; position:relative }心里话在写yodu模板的时候因为网友需要我就找了教程把回复可见功能加上了当时也是知道这个东西的bug但是自己不会修最近写了个typecho的搜索插件看了一些typecho的插件接口和源码发现用插件接口很好的就能解决了于是乎水文一下希望能帮助到一些人。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2511384.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!