标签归档:Wordpress

为原生comment_form添加表情

若主题的 comment form 是重写的,那么添加表情的方法可以参考这个

在 WP 3中,系统提供了 comment_form() 这个函数来生成评论框以免重复开发。如果使用这个来生成评论框,那么不能直接在对应源码中添加代码的方式来添加表情。

在这种情况下,可以用下面的方法来添加表情:

首先参照以上的方法的步骤1,然后在functions.php中添加以下代码:

function add_smilies_to_form(){
    include(TEMPLATEPATH . '/smiley.php');
}
//下面之所以区别对待,是因为默认情况下用户登录与否comment_form有所不同
if (is_user_logged_in()) {//用户登录情况下,加到登录信息下面(留言框顶部)
    add_filter('comment_form_logged_in_after', 'add_smilies_to_form');
}
else { //非登录情况下,加到fields下(留言框顶部)
    add_filter( 'comment_form_after_fields', 'add_smilies_to_form');
}

如无意外,这样即可。

配色真的好难

最近一直都没写东西,一来太懒了;二来,因为有点忙而几乎什么信息都没看,所以也没什么好写。

这几天在打算自己写个简单的主题看看,代码还好,可以参照别的主题或看API,可是在设计方面就遇到问题了。

我是个没有艺术感的人,我一直都知道。特别是在颜色搭配上面。

所以,大概的布局还好,可是关于颜色如何搭配还真的是累死了。

同时做 designer 和 coder 还真是一件困难的事情,如果有个现成的设计图之类的,就好办多了。

定时任务自动备份数据库并邮件发送

我原本是使用Vastar的第一个脚本方案来自动备份WordPress数据库并邮件发送的,不过后来因为更换服务器,不知道为什么造成了会二次备份并有错误提示。刚好Vastar又给了一个更简洁的方法,于是昨天就替换掉了。

不过Vastar的是同时备份数据库和网站文件的,而我是每天一备份数据库,网站文件是修改后才备份的,所以需要修改一下。虽然可以将网站目录设为空便可不备份网站文件,不过我决定省掉这些步骤。

继续阅读

个性化500页面

我使用的AtbHost空间最近不是很稳定,经常出现500 Interval Error(内部服务器错误),然后由Apache服务器提供一个简陋的提示界面。

404页面见得多了,WordPress里也可以独立建一个404的php文件,不过500页面该如何自定义倒没有找到。Willin的博客有自定义的500页面,还提供了参观页面,不过没找到如何定义的方法(有知道的不妨告诉我),不过倒是在空间后台中找到了便捷的方法。

某刻上空间后台时发现这个面板有提供错误页自定义功能的,于是我将Willin提供的500页面的源码扒了下来。然后在空间的选项中依次选择“高级(Adavnced)-> 错误页(Eror pages)-> [选择域名(select domain)] -> 500(Interval server error)”,然后在编辑框中输入HTML源码,保存即可。

error pages

继续阅读

解决小墙与wordpress-thread-comment的冲突

Update:我小看了这个插件,只是解决了一个小问题,但最终结果是未解决。。。。。

Willin大师的小墙广为传播,我一直有知,不过抱着能懒就懒的念头,一直都没有去使用,而是使用着Akismet。

不过,随着评论的增加,貌似误杀率在提高,所以决定换了。

方法倒是简单,直接将Willin提供的以下代码copy到functions.php文件中即可。

继续阅读

邮件通知直达评论

这个其实不知道该如何表述。但有新评论时,WordPress会发送邮件通知博主,默认给出的链接是文章的全部评论链接,即形如:

//liunian.info/funny-summer-day.html#comments

这样来说不是很方便,因为不能直接定位到该评论以回复。

修改起来也很容易,在/wp-includes/pluggable.php文件中搜索找到以下代码:

$notify_message .= get_permalink($comment->comment_post_ID) . "#comments\r\n\r\n";

#comments改为#comment-$comment_id即可。

小打小闹的修改

Winy 换上了新的轻灵飘逸的主题,Mucid 也折腾出了其的第一款主题,认识的很多博友们都在不停地折腾,我呢,嗯,还在小打小闹在原主题上修修改改。

为评论框添加outline

这个解释起来好像比较难的样子,直接看图吧。

有使用Safari的童鞋们应该知道苹果这家伙在细节上还是做得很好滴,比如,在聚焦文本框和链接时

Safari outline

Safari outline

继续阅读

开启WordPress Object-cache缓存

木木童鞋那里搜刮来的,可以将耗时查询或运算结果缓存起来,减少数据库的查询次数。

比如我的首页查询次数由36减为了17,减少了一半多,内页的查询次数也减少了大概一半,可见效果还是很不错的。查看查询次数很简单,在footer.php文件或其它文件的适当位置加入以下代码即可。

<?php echo get_num_queries(); ?>

这样在我的博客的底部便可以看到“查询次数:17”这样的东西了。

本来我的小站在开启了gzip压缩等优化功能后,页面的大小和加载速度是大大减少的了,可是最近为了美化和传说中的用户体验启用了一些效果,包括分页插件和加载提示。因为为了达到一些淡入淡出的结果,启用了jQuery。用的是1.4的版本,即使是min的版本,也有70多k,考虑到启用了gzip,大概传输的时候是20多k,不过这样也很客观了。因为我的本来首页大小也才100k多点。所以最近的加载速度减慢了些。

继续阅读

为跳转添加加载提示

loading直观地来说,就是指左边所展示的这玩意。这个东西很多博客上都有,而且添加起来也是一件很简单的事情。

我这里只是对博客文章post内的链接添加,别的没有。

代码很简单,如下:

将以上代码加到主题中的JS文件即可。

[ccewln_javascript]
jQuery(document).ready(function() {(‘.post a’).click(function(){
var text = (this).text();(this).fadeOut(‘slow’)
.text(“正在努力加载…”)
.fadeIn(‘slow’)
.delay(3000)
.fadeOut(‘slow’, function(){$(this).text(text);})
.fadeIn(‘slow’);
});
});
[/ccewln_javascript]

由于以上代码是jQuery的,所以必须保证在主题的JS文件前已加载了jQuery库,如果还没,可以使用

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>

来加载google托管的jQuery库;或者加载自己博客上的jQuery库。

Update:

继续阅读

Gravatar头像缓存

由于我没开启如WP Super Cache之类的缓存软件,这样子在评论多的时候,加载头像就成了一个大问题,毕竟所有的WordPress博客都是有限的几个服务器从那里获取头像的。

所以,决定缓存Gravatar头像。参照的是Willin大师新版Gravatar缓存一文中的第二种方法。

首先在WordPress根目录下建立文件夹avatar,设置权限为755(一般网站管理后台都默认权限为这个),用来缓存头像。准备一张适合模版大小的默认头像“default.jpg”,并放到该文件夹中。

将以下代码copy到主题的functions.php文件中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function my_avatar($avatar) {
  $tmp = strpos($avatar, ‘http’);
  $g = substr($avatar, $tmp, strpos($avatar, "’", $tmp) $tmp);
  $tmp = strpos($g, ‘avatar/’) + 7;
  $f = substr($g, $tmp, strpos($g, "?", $tmp) $tmp);
  $w = get_bloginfo(‘wpurl’);
  $e = ABSPATH .‘avatar/’. $f .‘.jpg’;
  $t = 1209600; //設定14天, 單位:秒
  if ( !is_file($e) || (time() filemtime($e)) > $t ) { //當頭像不存在或文件超過14天才更新
    copy(htmlspecialchars_decode($g), $e);
  } else  $avatar = strtr($avatar, array($g => $w.‘/avatar/’.$f.‘.jpg’));
  if ( filesize($e) < 500 ) copy($w.‘/avatar/default.jpg’, $e);
  return $avatar;
}
add_filter(‘get_avatar’, ‘my_avatar’);

一般来说这样就可以了。如果有别的问题可以到Willin的文中去找解答。