换用dark主题,Blog焕然一新
前天昨天我一不小心,在YO2主页上点了“检测修复白屏”链接,结果瞬间没有任何确认信息的将主题恢复为默认主题,非常不爽,至少得让我确认一下吧?这点YO2应该改进一下。
回复默认主题后,原来私有化自己编辑的主题数据被清空了,虽然联系管理员后告知已经恢复,但事实上我编辑的那一些并没有恢复。
所以只好重新来过,由于后来发现一直使用的iNove主题太火了,满大街都是,索性重新选择一个主题,后来我看到了这个 dark主题,给人眼前一亮的感觉,而且是我喜欢的宽版自适应,用之!,但是用上了发现有很多问题,花了整整一个下午,才将它搞定,下面写写我做了哪些改动:
1.让dark主题更好的支持 widget
yo2中默认的dark主题对widget支持得不好,siderbar本来有两个,但是在 functions.php中只注册了一个没有名称没有样式的 sidebar.这导致在 “小工具” 里面的 sidebar下拉框中只右边那个sidebar可以添加widget,所以我在 functions.php中将它改为:
<?php
if( function_exists(‘register_sidebar’) ) {
register_sidebar(array(
‘name’ => ‘right_sidebar’,
‘before_widget’ => ‘<li id=”%1$s” >’,
‘after_widget’ => ‘</li>’,
‘before_title’ => ‘<h2>’,
‘after_title’ => ‘</h2>’
));
register_sidebar(array(
‘name’ => ‘left_sidebar’,
‘before_widget’ => ‘<li id=”%1$s” >’,
‘after_widget’ => ‘</li>’,
‘before_title’ => ‘<h2>’,
‘after_title’ => ‘</h2>’
));
}?>
然后再在相应的 sidebar的html里面增加 dynamic_widget函数调用:
<?php if ( !function_exists(‘dynamic_sidebar’) || !dynamic_sidebar(‘left_sidebar’) ) : ?>
<?php endif; ?>
这样就可以在left和right sidebar中自由添加widget了。
还有一个问题就是,原来的inove主题有四个 sidebar,东南西北,现在只有两个,但是WP数据库中保存的动态 widget 有一部分不能显示在 “小工具”页,但是在数据库中还存在的,这样导致的问题是:曾经添加 分布在四个sidebar中的dynamic widget 现在只能显示 在两个 sidebar里面,有不能重新添加(例如 archive widget,应为以前加过,现在不能再加了),所以解决办法就是在 functions.php中按照上面的方法完整的 注册 四个 sidebar, 然后将在到”小工具”页中将 不显示的两个sidebar 里面的 widget删除,然后再添加到到当前显示的sidebar中,最后将 functions注册的sidebar清理即可。
2.将RSS订阅放在右边的sidebar
第二件事情就是将原来的 RSS Feed 掉到 右边栏 ,改了几个css就OK,很简单的。
3.将底部的 Blogroll去掉,换成了 Recent Comment
这个BlogRoll不是和放在下面很是不爽,因为Blogroll笼统的现实为“链接表”,没有分类不说,还只显示其中的一部分,索性将它放在有边栏,那么这块放什么捏?好了,放上最新评论吧。
由于 wp_recentcomment() 好像没有,所以还是手动写代码 query吧,修改 bottom.php,在相应的ul中加入:
<?php
global $comment;
if ( $comments = $themedb->get_results(“SELECT comment_author, comment_author_url, comment_ID,comment_content, comment_post_ID FROM $themedb->comments WHERE comment_approved=’1′ ORDER BY comment_date_gmt
DESC LIMIT 8″) );
foreach ($comments as $comment) {
echo ‘<li><a href=”‘. get_permalink($comment->comment_post_ID) .’#comment-’ . $comment->comment_ID .’”>’ . get_comment_author(). ‘<span style=”color:yellow”> 评论了 </span>’ . get_the_title($comment->comment_post_ID) . ‘</a>’;
echo ‘</li>’;
}
?>
同理,还将 left sidebar 的 Recent comments 加入了评论详细内容。
4.修复 WP Thread Comment和 dark theme 的CSS不兼容的地方
由于这个主题比较有特色,评论信息 放在最左侧的突出位置,而文章块则 有着巨大的 left margin ,所以对于 WP Thread Comment来讲,那个 mvcf函数将 comment form移到了每个 comment的节点末尾,但并未定义样式,结果是显示的一团糟。在 style.css中加上如下样式,即可修正这个bug:
ol#commentlist li #commentform {
margin-left:170px;
}ol#commentlist .comment-childs #commentform {
margin-left:5px;
}
5.增加gravatar和yo2avatar头像支持
以前一直没有弄明白这个 wordpress的头像是怎么回事,一直以为是各个wordpress共享的图标API,今天看代码才明白,原来都是www. gravatar.com的服务,不过在 yo2上,没有 gavatar 这个插件,只能用 yo2vatar,为了两个兼容,我这样写了代码,如果有 启用了yo2社区插件,就用显示yo2cdn的头像, 否则显示 gravatar的头像,
在需要 添加用到图片src的地方添加如下代码:
<?php
if(function_exists(‘yo2avatar’)) {
echo yo2avatar($comment->comment_author_email,$comment->comment_author_url,32);
}
else {
echo ‘http://www.gravatar.com/avatar/’.md5($comment->comment_author_email).’?s=32&r=any&default=’;
echo bloginfo(‘template_url’).’/images/default_32.gif’;
}
?>
唉!!编辑CSS和夹杂着HTML的php是一个非常繁琐枯燥的事情,
相关日志
本文发表于星期五, 三月 27th, 2009 at 下午 5:11 文章归类于 互联网, 鸟窝日记.
标签: Blog, Wordpress, YO2.
你可以去 留下评论, 或者
为什么不高亮显示,我开启了 highligh.js 插件啊
[回复]
febird 回复:
三月 27th, 2009 at 下午 8:08
算了,还是将代码拷贝到 设计视图,然后加上 标为 引用
[回复]
原来你也是绑在yo2上的啊
[回复]
febird 回复:
三月 29th, 2009 at 下午 9:45
是丫,虽然很慢,经常503,但是少了自己更新维护的麻烦。
[回复]
那你能帮我弄弄我的blog首页GFC的问题么?
首页和分页显示留言条数不一样?还有无法使用gravatar头像问题,我对网页这方面没研究,不懂弄
[回复]
febird 回复:
四月 3rd, 2009 at 下午 3:51
GFC的那个问题我也不知道你那是为什么,不过gravatar就按照我写的那段代码就OK。
[回复]
derek 回复:
四月 3rd, 2009 at 下午 11:55
看了,不过不知道在哪添加代码??
[回复]
@derek,可以加载comment.php的 那一页,将需要用到 头像src的地方加入那一段代码即可
[回复]
学习了,但是比较菜,不是说现在yo2是wp2.7的么,不是支持gravatar了么?可是我用的还是不行,请问你那个代码如何添加呢?
[回复]