今又碰到一个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()){}
按分类归档: 电脑
[BUG]is_front_page
Python中的a?b:c
写代码到一半,今天是Python,想用(?:),然后突然发现强大的Python竟然不支持这个,OMG。Google之,事实证明总有类似的方法:
val = float(raw_input("Age: "))
status = ("working","retired")[val>65]
print "You should be",status
<?php $status = ($val > 65) ? "retired" : "working"; ?>
BTW: 谁能告诉我ternary operator的中文是什么?玉伯说了,叫“三元操作符”,Leo说叫“三目运算”,也有说叫“逻辑运算”的。
今天看到一blog叫life is short - you need Python!
事实证明我又白了一次,人家用的就是tuple嘛,先建个("working","retired"),后面的[val>65]就相当于[0]或者[1],其实一点儿都不奇妙,只是人家不说咱就想不到。
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);
}
?>
l10n
同理:localization = l10n,天哪
i18n是什么
看了《I18n for WordPress Developers》才知道,I18n是internationalization的缩写。这是为什么呢(⊙o⊙)?我是左想右想没明白。不过事实教育我们,要读完全文再提问,人家紧接着就解释了,因为在i和n之间有18个字母。
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的同学可能也可以用到的)。
2.7升级成功
原来以为要改很多东西,没想到用默认theme很快就做到了所有想要的,不错不错自我表扬一个。