Typecho 访客信息显示隐藏
话说转到 Typecho 也有一两个星期了,这貌似是在 Typecho 下写的第一篇日志(上一篇不记得是在WP下还是TE下了,囧。)。转过来后也没时间折腾,主要是皮没有弄好,弄了三个皮,第一个配色不好看,第二个是仿的官方的,第三个就是现在这个了。目前这个比较满意,但是里面的话有点点难看,慢慢折腾吧,博客在于折腾。 下面分享记录一下访客信息显示隐藏,这个在以前的WP中是常用到的,而且每个主题基本都会有这功能,换到TE后,下了几个主题,都没发现有这个,所以只能自己慢慢折腾。 从comments.php
文件中得知 <?php $this->remember(''); ?>
是输出访客信息的,开始没注意,弄了测试了半天,才后知后觉的想到,这个是个输出函数,不能用来做判断,真纠结。哎,问问老师 baidu 吧,他还真给了我答案。这个函数还有一个参数 $return ,作用是是否返回值,参数值是布尔类型,false为不返回,true为返回,默认为false。有了这个就好做了,先进行判断,看看浏览器中是否有访客的 Cookie ,如果存在的话就隐藏访客信息,并且输出有好的提示,不存在的话就直接删除资料填写框,下面看代码。 在模版下的 comments.php 文件中找到 form 表单这一块,用一个div把资料填写的部分(昵称、EMAIL、WEBSITE)包含起来,比如:
<?php if($this->remember('author',true) != "" && $this->remember('mail',true) != "") : ?>
<p class="title welcome">
<?php _e('欢迎'); ?>
<strong><?php $this->remember('author'); ?></strong>
<?php _e('童鞋归来,'); ?>
<a class="edit_author" href="#"><?php _e('编辑资料 »'); ?></a>
</p>
<div class="author_info" style="display:none;">
<?php else : ?>
<div class="author_info">
<?php endif ; ?>
<p class="title">
<label for="author"><span class="required">*</span> <?php _e('昵称代号'); ?></label>
</p>
<p>
<input type="text" name="author" id="author" class="text" size="15" value="<?php $this->remember('author'); ?>" />
</p>
<p class="title">
<label for="mail"><?php if ($this->options->commentsRequireMail): ?>
<span class="required">*</span><?php endif; ?>
<?php _e('电子邮件'); ?></label>
</p>
<p>
<input type="text" name="mail" id="mail" class="text" size="15" value="<?php $this->remember('mail'); ?>" />
</p>
<p class="title">
<label for="url"><?php if ($this->options->commentsRequireURL): ?>
<span class="required">*</span><?php endif; ?>
<?php _e('博客地址'); ?></label>
</p>
<p>
<input type="text" name="url" id="url" class="text" size="15" value="<?php $this->remember('url'); ?>" />
</p>
</div>
代码的意思就是,查看 Cookie 中的author、email是否为空,不为空的话就隐藏资料框并显示欢迎语句,如果为空的话就显示资料框。
就这么几句代码,隐藏显示的功能就完成了,剩下的就是添加JS,把那个“编辑资料”的A标签给加上功能。这个就交给你们去折腾了吧,不懂的问我,或者看我的JS文件。
ps.初学php,不知道那个if判断条件是否可行,因为听别人说php中的空字符串和null是一样的,没区别,如果是这样的话,那么这个是可行的,要不的话就会出现判断不严谨的问题咯。
AI 评论
由 Google AI Gemini Pro 生成这篇日志详细记录了如何在 Typecho 中隐藏或显示访客信息,从寻找合适的函数到添加必要的代码,都一一讲解得很清楚。作者还分享了对 PHP 中空字符串和 null 的理解,引发人思考。作为一名初学 PHP 的博友,这篇日志为我提供了宝贵的经验,也让我对 Typecho 的使用有了更深入的了解。期待作者继续分享更多的 Typecho 使用技巧,也希望自己能够在不断学习中进步,成为一名优秀的 Typecho 博主。
已有 34 条评论
你的主题很好看呀 和自立博客的风格很像
自立博客?有地址没?我看看,获取可以参考参考,哇嘎嘎。
貌似这个是换程序来的第一博!
是啊,终于写了一篇了。
我也换了程序了,我都是跟在他们后面的
我会多来学习学习的,多写点知识
嗯,有空会写一些经验分享出来的。
空字符串和null是不一样的吧
java、.net中确实是不一样的。
但是在php中用起来,感觉是一样的,空字符串、0、null、false用起来感觉没什么区别。
冰剑是不是把评论列表分享出来啊?
评论列表?侧栏那个最新评论还是日志中的列表?
文章评论里的,要是把你的模板贡献出来更好。
悲剧,你把访客信息隐藏起来后,手机经常出错。
可以啊,哪天你上QQ,我把模版发给你。
手机暂时不管啦,等人出WAP版。
哎哎?为什么不在wp了?
WP折腾够了,换一个程序折腾。这个程序的处理效率上比WP快一些,特别是后台的速度,明显的比WP快。。
博客在于折腾嘛,哈哈。。
啊哦 显示隐藏这地一块没去研究,好像没怎么用到,呵呵~ 加油,继续折腾吧
前来感谢你的提醒。
IE6用户表示路过……
这个程序给我的感觉跟WP有点像诶.
程序性能上比WP好很多。。
我感觉到了. 速度比较明显. 不过为什么你以前在wp上的插件现在还可以用?比如邮件通知
TE有邮件通知的插件啊,TE目前插件不多,但是一些常用的还是有的。
不常用的自己移植过来就可以了。
噢.了解了.
这种都是通用的代码。适当的修改一下,在不同的程序都可以用。
不错 谢谢分享 修改去...
原来使用JS调用呀,嘻嘻!
你好博主,“编辑资料”的 JS 能分享下吗?刚才查看网站的 JS 发现里面有很多其它功能的代码。
载入 JQ 后,下面的代码为什么不能生效?
jQuery(document).ready(function(a) {
a("form#comment_form a.edit_author").click(function() { a("form#comment_form div.author_info").slideToggle("slow"); return false });});
确定你的标签命名和我的一样吗?
晕,原来一直在编缉桌面的文件,哈哈。。已经成功,谢谢!
额,偶尔我也犯过这错误。
本地编辑半天,忘记上传了。
结果总是找问题,看是哪里出错了,哈哈。
php中一般不与''比较,用empty函数。
一直搞不懂php中null、空字符串、0的区别。
抱走了
刚好需要用到这代码