php 回复可见,Typecho完美实现回复可见功能

步骤一

就是《typecho非插件实现回复可见功能》里面的内容

将post.php中的<?php $this->content(); ?>换成<?php

$db = Typecho_Db::get();

$sql = $db->select()->from('table.comments')

->where('cid = ?',$this->cid)

->where('mail = ?', $this->remember('mail',true))

->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

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值