按分类归档: WordPress

这里讲述我学习使用wordpress的经验,包括theme,插件,plugin,安装和使用

定时备份mu数据库

一直没有找到好用的mu数据库备份插件,mu官方给的方法是这样滴:
DATE=`date | tr " " _`
echo $DATE
mysqldump wordpress --add-drop-table -h localhost -u wpdbuser -pyourpasswd | gzip > db.$DATE.gz
tar cvfz code.$DATE.gz
不过这只有备份打包,没有发送到email得功能,最近我找到了这个:AutoMySQLBackup,一个shellscript,可以自动备份数据库,并发送到email,和WP-DB-Backup的功能一样了哦,不过怎样能定时运行嗫?在询问了site5客服后,得到的回复是——建个cron job。

先根据提示修改automysqlbackup.sh.2.5,写入数据库信息,上传到服务器合适的目录,例如:~/etc
修改权限:chmod +x ~/etc/automysqlbackup.sh运行一下看看有没有收到备份email,如果有问题,继续修改automysqlbackup.sh
ssh到服务器,输入crontab -e开始编辑,0 2 * * * ~/etc/automysqlbackup.sh(每天晚上2点运行),保存,退出,第二天看看有没有收到email。

给WP加上Google广告代码

刚给自己的blog加了Google广告,第一天就收入了1分美金,开心啊,照这样一个月3毛,一年3块6,Google 100美金给寄支票,那么30年左右我就能拿到我的第一张Google支票啦!
要给每篇post加上Google广告其实蛮容易的,代码如下:
<?php
add_filter('the_content', 'google_ads');
function google_ads($content){
if(is_page()||is_single()){
ob_start();
?>
<div class="google center">
<!--Google AdSense Code HERE-->
</div>
<?php
$content = ob_get_contents().$content;
ob_end_clean();
}
return $content;
}
?>
明天有空接着讲对直接访问和搜索引擎来的用户显示不同尺寸广告的代码。

去掉域名里的www(.htaccess)

前段时间偷偷去掉了域名里的www,看了ma.tt的文章,修改了WP的index.php(后来才发现ma.tt写了个插件WordPress no-www)。头几天挺好,PR也过来了,不过再后来PR就消失了,Leo说是PR没刷新,我晕,等等吧,怎么等也不见好,这时候唐唐说他转的域名PR恢复了,我突然反应过来升级WP该不是把我改的index.php覆盖了吧,一看果然是。重新Google .htaccess的解决方式吧。

# 301 redirect to domain without 'www.'
RewriteCond %{HTTP_HOST} ^www.example.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]

参见《301 Redirect With No WWW Using Htaccess》
也不知道有用没用。

WP空白首页历险记

今天又碰到个郁闷错误,瞳妈紧张兮兮的在QQ上说:花蕾怎么连不上了?一片白啊!
我一看,那叫一个白啊,⊙﹏⊙b汗!啥都没有啊。
想了想,先升级wp,后台一跑,挺好的呀。顺利升级,刷新,还是一片白。OK,我的theme写得有问题(用了都快1年的theme,怎么会突然有问题?不管了),启动default,还是一片白。那么??禁用插件,还是白的,Orz。
在大脑空白n分钟后到群里吼,然后开始google,关键词:“wordpress blank page”,结果有个外国哥们儿写,wp每个月都会定时不定时的来那么一次blank page,搞得和大姨妈一样,写了几个处理办法,我一看不外乎就是升级禁用插件,不过还写了看看php和mysql的版本。到cpanel里看了看,也没问题啊。那叫一个郁闷啊。
这时群里一群友说:“好像就是首页出了问题。”这算怎么回事儿啊。
决定全删掉,重装wp,顺手开了cpanel的文件管理(windows时代的,command line用不好),一个一个文件钩,突然我发现一个index.html,长度0,圈圈你个叉叉,谁放了个index.html在根目录?(曈妈,是你不?)删了,那丢失的主页又回来了,曈曈,优优,你们的笑脸真漂亮啊。
所以,同志们,有时候很多错误真的是很白。

[BUG]is_front_page

今又碰到一个wp的bug,也不知道说是wp的bug好还是我的数据库bug。
做顶部的“首页”链接的时候,我选择了is_front_page做为判断,不过失败了,换了is_home就好了,然后我就陷入了无限郁闷当中。看了一眼代码:
function is_front_page () {
// most likely case
if ( 'posts' == get_option('show_on_front') && is_home() )
return true;
elseif ( 'page' == get_option('show_on_front') && get_option('page_on_front') && is_page(get_option('page_on_front')) )
return true;
else
return false;
}
咋用了get_option('show_on_front')嗫,跑到后台一看,在“Setting - Reading”里面的“front page displays”里一个都没有选。再看数据库,果然,没有show_on_front这一条。剩下就是提交bug,然后改代码。
迂回的解决方法:if(get_option('show_on_front')?is_front_page():is_home()){}

3种方式改变默认avatar图片

第一种,增加后台的默认avatar选项,然后到后台的Settings-Comment设置里面选中,保存。这个比较适合自己网站有固定的默认头像图片,换任何theme都用这一个图片的情况。代码:
add_filter( 'avatar_defaults', 'fb_addgravatar' );
function fb_addgravatar( $avatar_defaults ) {
$myavatar = 'http://e-xia.com/avatar.jpg';//avatar地址
$avatar_defaults[$myavatar] = 'Avatar';//avatar名称
return $avatar_defaults;
}
第二种,通过get_avatar这个函数,设置第三个参数为默认头像的地址。这个适合需要默认头像配合当前模板来获得最大视觉效果情况,完全忽略后台设置,超级适用于对MU统一的默认头像管理。代码:
<?php
echo get_avatar( $id_or_email, $size = '96', $default = '<path_to_url>' );
?>
第三种,通过filterget_avatar来设置默认头像的地址。这个适合2.7中使用了默认的wp_list_comments(),或者作为子模板,不能直接调用get_avatar(),或者代码中多次使用了get_avatar(),想做统一修改的。代码:
<?php
add_filter('get_avatar', 'change_default_avatar', 1000, 4);
function change_default_avatar($avatar, $id_or_email, $size, $default){
return str_replace(urlencode($default), urlencode("<path_to_url>"), $avatar);
}
?>

Easy Picasa插件发布

发布地址:Easy Picasa
具体情况请看:Easy Picasa
Picasa相关知识请看:Picasa外链及我的WP插件Easy Picasa

Picasa外链及我的WP插件Easy Picasa

最近研究了一下picasa的外链,发现在实际应用中真是妙用无穷。
首先,picasa是google的免费相簿,google提供了同名的软件,帮助修改照片和上传,基本上还是很好用的。但是如果直接复制图片的链接,有时候外链会出现大叉,是不是google真的这么小气不提供外链呢?其实不是这样的,而是google提供了更贴心的服务。
一般复制下来的图片链接是这样的:http://lh5.ggpht.com/_jOzRPgTdRmo/SWL6LnO8WYI/AAAAAAAAA3Q/14LVMgVPZ5c/cover.jpg,引用就是一个叉,这里的关键就是要加参数,在图片名之前加入尺寸参数,变成http://lh5.ggpht.com/_jOzRPgTdRmo/SWL6LnO8WYI/AAAAAAAAA3Q/14LVMgVPZ5c/s400/cover.jpg,就可以外链了。
加入参数后会发现图片最大的一边边长变成了400px。这样做的好处是什么呢,就是可以控制引用图片的大小,便于插入网页,也加快浏览速度。小尺寸的照片总是比较容易摆放,下载也更快。特别是当一个页面引用了很多图片的时候,小尺寸的优势那就更突出了。光说没用,咱们看实例。http://hello.365memo.com是我用wp帮朋友做的一个图片浏览站。在首页,我引用了s400尺寸的图片来控制图片大小。接下来就是重点了,http://hello.365memo.com/2009/01/ 是零九年一月份的列表,有31张缩略图,如果是别的站点外链的原尺寸的图片,每张少算点儿50K(其实很多照片都1M朝上),30张就是1500K,将近1.5兆了吧。而现在我加入了s64-c的参数,每张图片就才2K都不到了,60k轻松下载,数据还是很诱人的吧。
具体说说参数,刚才说了s400就是最大边长400px,以此类推,s64就是最大边长64px,可是s64-c呢?-c就是裁切,把图片裁切成64px边长的正方形。所以那个月列表上的图片可以是全方的,达到堪称完美的效果。不过不是所有的尺寸随便填写的,这里给出一张图表,参考:《Exploring Picasa Web Albums - Thumbnails and Other Hidden Options》,《Picasa Web Albums query parameters reference》

不过每次加参数还是很麻烦?我专门为picassa写了个wordpress plugin,其中还有一个我写的jQuery的plugin,以解决某些同学觉得加参数麻烦的问题。具体请看:Easy Picasa(一定要看,自我感觉这个插件属于超水平发挥,还有在线的测试页面哦,不用wp的同学可能也可以用到的)。

一共有3页,现在是第1页:[1]23»