今天逛Typecho“社区→开发→插件及扩展”的时候,这篇帖子——Typecho内容回复可见功能 引起了我的兴趣,因为我一直希望在TP中实现 露兜博客 发布的WP插件——隐藏内容登陆后可见 类似效果,但一直没有发现TP有类似插件,也许是没有用心去找吧……以前用WP的时候就在用这个插件,那时候还是2.0版,刚刚看了一下现在已经是3.1版了,推荐有类似需求的WP用户关注。

  自己不会开发插件,就只有按教程往主题中添加代码来实现了,根据这篇帖子和WP插件代码,结合自己的需求调试出自己满意的代码记录如下,以备查验。

  具体方法就是使用以下代码:

<?php
if($this->user->hasLogin()) {
    $content = preg_replace('/<!--loginview start-->([\s\S]*?)<!--loginview end-->/i','$1',$this->content);
}
else{
    $content = preg_replace('/<!--loginview start-->([\s\S]*?)<!--loginview end-->/i','<div style="text-align:center;border:1px dashed #FF9A9A;padding:8px;margin:10px auto;color:#FF6666;"></br></br>此处内容登陆后方可阅读,谢谢关注!</br></br></br></div>',$this->content);
}
echo $content 
?>

  替代index.php、post.php和archive.php中的以下代码:

<?php $this->content(''); ?>

  使用方法:写文章时在隐藏的内容前后添加以下代码:

<!--loginview start-->隐藏的内容<!--loginview end-->

  我的代码中没有使用[hide][/hide],而借鉴了露兜博客的注释类代码,使用这段代码的好处对于使用者来说,更换主题后,如果没有及时为主题增加该功能代码,该标签不会被显示出来,也就不会打乱文章布局。而对于我来说,因为原来WP的时候文章中使用过这个标签,但后来转到TP就失效了,现在增加这段代码后再次重新生效,还是很值得高兴一下的。另外,将本来在style.css中定义隐藏内容显示样式的代码结合到上面的代码中了,省去在style.css中增加样式。

  效果演示:



此处内容登陆后方可阅读,谢谢关注!