实现WordPress之gravatar头像缓存非插件版

本来不打算整这功能的,不过由于这段时间博客链接gravatar服务器获取gravatar头像变的非常缓慢,于是才决定把gravatar头像缓存到本地。采用willin的方法,简单实现gravatar头像缓存。测试成功,此文为备忘。

gravatar头像缓存前提:

确定自己的模板主题文件 comments.php 用的是 WordPress 2.7 以后才有的 wp_list_comments()

开始:

1. 在 wp-content 的同级目录建立文件夹:avatar,权限为:755, 这是准备 gravatar 缓存的路径

2. 把一个50×50的jpg图片改名为:default.jpg,把它存到第1步建立的 gravatar 缓存文件夹 avatar 里面

3. 找到主题文件 comments.php 或是在 functions.php 里的 function mytheme_comment($comment, $args, $depth) 会有一段像下面这样一段代码:

<?php echo get_avatar($comment,$size=’50’,$default='<path_to_url>’ ); ?>

替换成:

<?php
$p = ‘avatar/’;
$f = md5(strtolower($comment->comment_author_email));
$a = $p . $f .’.jpg’;
$e = ABSPATH . $a;
if (!is_file($e)){ //当头像不存在就更新
$d = get_bloginfo(‘wpurl’). ‘/avatar/default.jpg’;
$s = ’32’; //头像大小 自行根据自己模板设置
$r = get_option(‘avatar_rating’);
$g = ‘http://www.gravatar.com/avatar/’.$f.’.jpg?s=’.$s.’&d=’.$d.’&r=’.$r;
copy($g, $e);
if ( filesize($e) == 0 ){ copy($d, $e); }
};
?>
<img src='<?php bloginfo(‘wpurl’); ?>/<?php echo $a ?>’ alt=” class=’avatar’ />

3. 没有了
原文:http://zww.me/archives/24711

Inpaint V2.4汉化绿色特别版-实用的图片去水印工具

       Inpaint是什么软件?Inpaint是一款可以从图片上去除不必要的物体,让您轻松去除照片上的水印、划痕、污渍、标志等瑕疵的实用型软件;简单说来,Inpaint就是一款强大实用的图片去水印软件,您的图片中不想要的部分,如额外的线、人物、文字等……选定后Inpaint都会帮你全自动进行擦除,同时Inpaint会根据附近图片区域重建擦除的区域,使看起来完美无暇,没有痕迹。

Inpaint V2.4汉化绿色特别版下载地址:
迅雷下载地址

屏幕录像专家V7.5完美注册去水印版下载

屏幕录像专家V7.5完美注册去水印版是一款专业的屏幕录像制作工具。使用它你可以轻松地将屏幕上的软件操作过程等录制成FLASH动画、ASF动画、AVI动画或者自播放的EXE动画。本软件采用直接录制方式或者先录制 ,再生成的方式录制屏幕录像,使用户对制作过程更加容易控制。本软件使用简单,功能强大,是制作各种屏幕录像和软件教学动画的首选软件。
屏幕录像专家V7.5完美注册去水印版基本功能如下:
1.生成FLASH动画,文件小可以在网络上方便使用。
2.生成ASF动画,可以在网络上在线播放。
3.生成AVI动画,支持各种压缩方式。
4.生成EXE文件,可以自动播放动画不需附属文件。高度压缩,生成文件小。
5.支持后期配音和声音文件导入,使录制过程和配音分离。
6.录制目标自由选取:可以是全屏、选定窗口或者选定范围。
7.录制时可以设置是否同时录制声音,是否同时录制鼠标。
8.可以自动设置最佳帧数。
9.可以设置录音质量
10.可以自己定义快捷键
11.直接录制AVI功能
12.直接录制EXE功能
13.FLASH扩帧功能,使FLASH动画更加平滑。
14.EXE自动扩帧功能,更加平滑,即使是1帧/秒也有平滑的效果
15.AVI扩帧功能,可以制作25帧/秒的AVI动画
16.录制Realplay中播放的电影内容
17.鼠标点击自动提示功能
18.AVI合成、AVI截取、AVI转换压缩格式,EXE转成AVI
19.自由设置EXE录制播放时各种参数,比如位置、大小、背景色、控制窗体、时间等
20.支持EXE录像合成多节EXE
21.高度无损压缩,制作出最小的EXE录像
22.简单后期编辑功能,支持EXE截取、EXE合成、EXE转成LX、LX截取、LX合成等功能 23.EXE播放时可以定位到任意帧

屏幕录像专家V7.5完美注册去水印版下载地址(如果迅雷下载不了,请用IE下载)
下载地址1丨来自壹品集

禁用WordPress 3.6文章修订版本功能

wordpress的文章修订版本功能个人一直不大喜欢,所以以前都是禁用的,不过自从升级了wordpress3.6以后,以前的禁用WordPress 3.6文章修订版本功能失效了,今天找来一段新的目前还有效的代码。

在 把下面代码加在网站根目录的wp-config.php 中:

define('AUTOSAVE_INTERVAL', 36000000 ); //设置自动保存间隔,单位是秒,默认60
define('WP_POST_REVISIONS', false ); //禁用文章修订功能

如果你的wordpress没有升级到3.6.那么你也可以使用下面的方法。

在主题的functions.php 加设置代码禁止文章修订的方法:

//////// 移除自动保存和修订版本
remove_action('pre_post_update', 'wp_save_post_revision' );
add_action( 'wp_print_scripts', 'disable_autosave' );
function disable_autosave() {
	wp_deregister_script('autosave');
}

其他方法:

WordPress文章版本修订功能对于很多人来说完全是垃圾数据库的制造者,所以很多玩WordPress博客的朋友都会把WordPress的文章修订功能关闭,网上关于禁用WordPress文章修订功能的方法很多种,有用插件的,也有采用代码的,插件装多了拖速度,所以在能不用插件的情况下,尽量不要去用插件,采用代码的话,但是网上有的方法在禁用WordPress文章修订功能的方法都是刚开始有效,过段时间又失效了,下面这个方法,经过本人测试,完美实现禁用WordPress文章修订功能并保留自动保存功能。

WordPress 之所以能生成修订版,是因为在更新一篇文章之前,先执行了挂在“pre_post_update”钩子上的函数。在 wp-includes/default-filters.php 中,可以看到这一行:

add_action( ‘pre_post_update’, ‘wp_save_post_revision’ );

这样每次修改都会自动调用 wp_save_post_revision 这个函数来创建修订版记录。我需要做的就是把这一行注释掉,这样就不会在 Update 后生成修订版了。

但仅仅改了这一行还不行,有一种情况仍然会产生修订版。那就是在修改已经发布的文章时,自动保存功能会产生新的修订版。我们可以在 wp-admin/includes/post.php 文件中,找到 wp_create_post_autosave 函数。通过阅读代码和注释,可以知道如果正在编辑的文章还没有自动保存过,就会创建一个修订版。为了让它仅仅起到保存的作用,需要将最后一行的

return _wp_put_post_revision( $_POST, true );

改成:

return edit_post();

整个函数如下:

function wp_create_post_autosave( $post_id ) {
$translated = _wp_translate_postdata( true );
if ( is_wp_error( $translated ) )
return $translated;

// Only store one autosave.  If there is already an autosave, overwrite it.
if ( $old_autosave = wp_get_post_autosave( $post_id ) ) {
$new_autosave = _wp_post_revision_fields( $_POST, true );
$new_autosave[‘ID’] = $old_autosave->ID;
return wp_update_post( $new_autosave );
}

// Otherwise create the new autosave as a special post revision
//return _wp_put_post_revision( $_POST, true );
return edit_post();
}

通过修改这两行代码,既保留了自动保存功能,又去掉了历史记录功能,另一个额外的好处是可以让文章ID连续增长。唯一不好的是需要修改源代码,这样在升级 WordPress 以后又要重新做一次。

要清理已经存在的文章修订记录,可以使用插件:Delete-Revision

Windows Live Writer(WLW):服务器响应无效解决办法

Windows Live Writer用来离线发布博客文章是相当不错,个人一直都是用WLW来离线发布文章的,不过WLW时不时的会给你闹点小毛病。昨天用的好好的WLW,今天再发布文章时却提示“服务器响应无效”别急,有问题先找GG,还是不负所望,很快在GG上找到问题所在:原来是因为wordpress本身的一个bug,在utf-8编码下,xml-rpc返回的格式不正确,缺了三个字节,要修正这个问题,按如下操作即可:
这个文件在wp-includes文件夹下找到chass.ixr.php

用一个文本编辑工具打开chass.ixr.php,查找:

$length = strlen($xml);

替换为:

$length = strlen($xml)+3;

就可以解决这个问题了!
当然,对于WLW还有其他问题可能不是由于chass.ixr.php造成的,在用上面解决无效的情况下,试试再拿出杀手锏GG,相信你会有所收获的

全球通用头像Gravatar头像注册使用教程

上网这么久,你还没有你的个性头像?这也太out了吧?想在网上发表评论时显示你自己的个性头像么?本文将一步一步告诉你如何设置你的评论个性头像。

首先我还是简单介绍一下Gravatar头像吧:

其实,我们把那种个性头像叫Gravatar,现在大部分网站博客都支持这种头像。是一种全球通用头像。Gravatar的概念首先是在国外的独立WordPress博客中兴起的,当你到任何一个支持Gravatar的网站留言时,这个网站都就会根据你所提供的Email地址为你显示出匹配的头像。这个头像功能是和WordPress一起的,和开源博客系统 WordPress以及反垃圾插件Akismet一样,都是属于Aumattic公司的产品,最开始也是依附于WordPress,但现在,已经不仅仅局限于为WordPress提供服务了,已经被广泛的应用在各种web 2.0的服务中,比如最新的就是gmail和QQ邮箱都支持Gratavar,所以,有一个自己的头像还是很必要的,Gravatar越来越成为全球通用头像。

当然,这个头像,是需要你事先到Gravatar的网站注册并上传的,否则,在这个网站上,就只会显示成一个默认的头像。既然现在大部分网站博客都支持Gravatar头像,那壹品集自然也支持Gravatar头像了,你可以通过你的个性头像打造起你的个人品牌了!并且这个Gravatar没有什么约束,想换头像换马甲?很简单,改改留言的名字和email地址就可以了。另外注册与使用Gravatar均是完全免费的。
gravatar全球通用头像

下面几个步骤可以告诉大家如何在壹品集http://www.articn.com/或者别人的Blog上定制自己的个性头像:
1. 注册:进入Gravatar网站(网址http://gravatar.com/),点击顶部菜单里的Sign Up。然后会提示你输入你的Email地址

注:请用你真实有效的邮箱,(这个邮箱地址最好是常用的,因为在WordPress博客上留言的朋友知道,会需要输入一个邮箱地址,而且是必选的。)成功之后,会提示已经发送邮件到指定的邮箱。

2. 验证:进入你刚才注册时填的邮箱,点击激活链接,如果不能点击链接的话,可以从Gravatar发出的信件中拷贝那段链接地址,在浏览器输入。这时会进入个人信息确认页面,确认的时候,记得 check 一下自己的用户名,毕竟人多,难免用户名重复。

3.确认了用户名和密码登陆可以看见“Add one by clicking here!” 的字样,意思是点击这里增加一个头像

4. 选择上传图片:一般都是从电脑中上传(My computer’s hard drive)。

5. 剪裁大小

6. 评级:你的头像要被分级的,因为可能会有朋友喜欢用比较曝露的头像,会影响小朋友身心健康的说。如果你的图片不是特别那个的话,一般不用选择Sex或暴力之类的,直接选择G(通用型),这样基本任何网站都能显示这个等级的图片。级以下的头像……
Gravatar头像分级
7. 等待审核:可能需要站方短暂审核一下,一般选择了G,而你的图片没什么特别的,很快就通过。一般遇上慢的情况也就10分钟左右。

完成了以上步骤,今后在壹品集和其他支持Gravatar的网站留言都会显示你帅帅的头像了。暂时来说,大部分支持Gravatar的网站均是使用WordPress程序的博客,但其实任何其他网站程序,如果加入了Gravatar的代码,也是可以支持Gravatar的。估计这个应用在日后会渐渐普及起来吧,起码用户不需要每到一个网站去就搞一下头像…
1. 问:注册和找回密码在哪进行?
Gravatar注册 | Gravatar找回密码
2. 问:注册Gravatar之后,只要是WordPress博客就能看到自己的头像了么?
答:不一定,这取决于博客主题是否支持了Gravatar的API,幸运的是,目前大多数WordPress博客所使用的主题是支持Gravatar的。
3. 问:只能在WordPress博客使用Gravatar么?
答:不是。这主要取决于网站管理者:只要网站能获取你的EMail信息,同时又在展现层使用Gravatar的API,就可以使用。国外一些小的Web2.0公司的产品都是支持Gravatar的。
4. 问:用EMail去匹配,又是通过展现层(HTML代码),那会不会泄露我的EMai呢?
答:不会,因为Gravatar使用的是MD5加密之后的EMail字符串,您完全不必担心您的EMail地址泄露。
5. 问:为什么我注册之后看不到图像?
答:因为Gravatar有一个比较长的缓冲周期;注册完之后,并不会立即显示相应图像
6. 问:我如果现在注册,之前留言中的头像会显示么?
答:会,只要提交评论的时候,你使用了同样的EMail地址即会显示
7. 问:如果想注册多个头像,怎么办?
答:可以用GMail的一个“加号”小技巧来注册。其他邮箱暂时无法满足这种需求。这也是邮箱方面GMail的绝对竞争优势之一。
8. 问:如果有人冒充我的邮箱呢?
答:没办法,如果被人冒充,就会显示这个邮箱匹配的头像,这的确是一个问题。因此,保护好自己的邮箱是非常重要的,也可以结合“8”中提到的GMail小技巧,比如你可使用somemail+1980@gmail.com来作为你的注册邮箱。一般人是无法猜测到你这个“+1980”的私有后缀的,而这个邮箱又能在GMail所正常使用。
简单吧,现在大家可以自己动手打造完全个性化的头像了!

免插件实现WordPress日志存档功能

免插件实现WordPress日志存档功能特点: 1. 这个存档函数会在数据库生成一个表 SHe_archives_25216,用来保存在文章新发表/删除文章时生成的 html,这主要是加快访问速度,不用每次都要查询数据库生成归档。
2. 显示每月文章数
3. 显示每篇文章的评论数
下面是详细步骤
1. 把下面的 archives_list_SHe 函数代码扔进主题的 functions.php 里面

function archives_list_SHe() {

     global $wpdb,$month;

     $lastpost = $wpdb->get_var(“SELECT ID FROM $wpdb->posts WHERE post_date <‘” . current_time(‘mysql’) . “‘ AND post_status=’publish’ AND post_type=’post’ AND post_password=” ORDER BY post_date DESC LIMIT 1″);

     $output = get_option(‘SHe_archives_’.$lastpost);

     if(empty($output)){

         $output = ”;

         $wpdb->query(“DELETE FROM $wpdb->options WHERE option_name LIKE ‘SHe_archives_%'”);

         $q = “SELECT DISTINCT YEAR(post_date) AS year, MONTH(post_date) AS month, count(ID) as posts FROM $wpdb->posts p WHERE post_date <‘” . current_time(‘mysql’) . “‘ AND post_status=’publish’ AND post_type=’post’ AND post_password=” GROUP BY YEAR(post_date), MONTH(post_date) ORDER BY post_date DESC”;

         $monthresults = $wpdb->get_results($q);

         if ($monthresults) {

             foreach ($monthresults as $monthresult) {

             $thismonth    = zeroise($monthresult->month, 2);

             $thisyear    = $monthresult->year;

             $q = “SELECT ID, post_date, post_title, comment_count FROM $wpdb->posts p WHERE post_date LIKE ‘$thisyear-$thismonth-%’ AND post_date AND post_status=’publish’ AND post_type=’post’ AND post_password=” ORDER BY post_date DESC”;

             $postresults = $wpdb->get_results($q);

             if ($postresults) {

                 $text = sprintf(‘%s %d’, $month[zeroise($monthresult->month,2)], $monthresult->year);

                 $postcount = count($postresults);

                 $output .= ‘<ul class=”archives-list”><li><span class=”archives-yearmonth”>’ . $text . ‘ &nbsp;(‘ . count($postresults) . ‘&nbsp;’ . __(‘篇文章’,’freephp’) . ‘)</span><ul class=”archives-monthlisting”>’ . “n”;

             foreach ($postresults as $postresult) {

                 if ($postresult->post_date != ‘0000-00-00 00:00:00’) {

                 $url = get_permalink($postresult->ID);

                 $arc_title    = $postresult->post_title;

                 if ($arc_title)

                     $text = wptexturize(strip_tags($arc_title));

                 else

                     $text = $postresult->ID;

                     $title_text = __(‘View this post’,’freephp’) . ‘, &quot;’ . wp_specialchars($text, 1) . ‘&quot;’;

                     $output .= ‘<li>’ . mysql2date(‘d日’, $postresult->post_date) . ‘:&nbsp;’ . “<a href=’$url’ title=’$title_text’>$text</a>”;

                     $output .= ‘&nbsp;(‘ . $postresult->comment_count . ‘)’;

                     $output .= ‘</li>’ . “n”;

                 }

                 }

             }

             $output .= ‘</ul></li></ul>’ . “n”;

             }

         update_option(‘SHe_archives_’.$lastpost,$output);

         }else{

             $output = ‘<div class=”errorbox”>’. __(‘Sorry, no posts matched your criteria.’,’freephp’) .'</div>’ . “n”;

         }

     }

     echo $output;

}

2. 复制一份主题的 page.php 更名为 archives.php,然后在最顶端加入:

<?php
/*
Template Name: archives
*/
?>

再然后找到类似 <?php content(); ?>,在其下面加入如下代码

<a id="expand_collapse" href="#">全部展开/收缩</a>
<div id="archives"><?php archives_list_SHe(); ?></div>

进wp后台添加一新页面,在右侧栏模板选择 archives 3. 如果你的主题本身加载了 jQuery 库,那么继续把下面的 jQ 代码加上去,就会有滑动伸缩效果了

/* 存档页面 jQ伸缩 */
 $('#expand_collapse,.archives-yearmonth').css({cursor:"s-resize"});
 $('#archives ul li ul.archives-monthlisting').hide();
 $('#archives ul li ul.archives-monthlisting:first').show();
 $('#archives ul li span.archives-yearmonth').click(function(){$(this).next().slideToggle('fast');return false;});
 //以下下是全局的操作
 $('#expand_collapse').toggle(
 function(){
 $('#archives ul li ul.archives-monthlisting').slideDown('fast');
 },
 function(){
 $('#archives ul li ul.archives-monthlisting').slideUp('fast');
 });

css 样式可以通过 #archive 来定义附上分享地带的CSS样式

/* 存档页 */ #archives{margin-bottom:25px;} #archives ul{margin-bottom:6px;} #archives ul li{margin: 5px 15px 5px 20px;} .archives-yearmonth{color:#666666;}

资料来源:http://zww.me/archives/25209