WordPress最吸引我的魅力就在于她丰富多样的扩展性。只要你有丰富的知识、熟练的技术以及一个富有创造性的大脑,那么你的Wordpress博客就会变得无所不能!
增强Wordpress扩展性大家最常用的就是插件,说实在的我不太喜欢使用过多的插件,因为当我每每添加一个插件,我就不得不考虑博客浏览的速度!我最多使用的就是Hack(我个人把它翻译为“技巧”也可以译为“修改”),那么Hack和plugin究竟有何区别呢?
Hack:是基于开源的程序的基础,是针对原程序文件的直接修改,如对其代码进行增加、删除或者修改、优化,使之在功能上符合新的需求。Hack在格式上也自然没有太严格的规定,且一般没有文件的增加。
plugin:一般是利用程序的API(接口),复用程序底层,利用一些程序既有的函数和类来制作新的小作品,一般有文件的增加。符合标准的插件,其目录结构和文件名都是有一定格式的(如Wordpress的插件文件需放在plugin目录下)。
经常在网上浏览,你就会发现很多优秀的博客都使用到一些小技巧。我筛选一些个人认为实用性比较强的的技巧不定期的介绍给大家。如果该技巧比较复杂我会将其独立成篇;如果简单易行,则汇集若干成一篇,以便于大家阅读。
(一)给你的博客增加一个导航
给你的博客增加一个良好的导航链接,让你的读者不至于在阅读你的博客时迷失方向,那是很重要的;同时良好的导航可以指引读者在你的博客中找到更多他想要的东西。
在single.php页面循环开始之后最开始的地方添加以下代码即可:
<a href="<?php echo get_settings('home'); ?>" title="Home">Home</a> » <?php the_category(","); ?> » <?php the_title(); ?> |
你还可以为它定义一个CSS样式(仅供参考):
#postpath { background:url(images/postpath.png) no-repeat 3px 3px; height:16px; line-height:16px; margin:5px 0; padding-left:22px; } |
(二)在你的每个页面前三篇日志中显示Google Ads
很多网友都想在他们主页的前三篇日志中来展示Google Ads以获取更好的展示效果以及更多的点击量。下面来看看如何改造你的主题以达到此目的。打开你主题中的indexe.php文件并找到页面循环语句(the loop)。
循环语句(the loop)开始于:
<?php if (have_posts()) : while (have_posts()) : the_post(); ?> |
结束于:
<?php endwhile; ?> |
你要把你的Google Ads放置于循环语句(the loop)的开始和结束之间,选择一个适当的位置(比如文章的开头和结尾)加入如下代码:
<?php if ($wp_query->current_post < 3) { ?> <!-- 在这里加入你的 Google Adsense 代码 --> <?php } ?> |
保存文件,刷新一下看看是不是你想要的结果:-)
(三)显示博客作者列表
如果你的博客是一个多用户博客,并且你想把作者以列表形式显示出来,那么一下代码将帮助到你:
<ul> <?php wp_list_authors('exclude_admin=0&optioncount=1&show_fullname=1&hide_empty=1'); ?> </ul> |
相关参数设定:
- exclude_admin:0(列表中包括管理员的名字)/1(列表中排除管理员的名字)
- optioncount:0(在作者名字后面不显示文章数目)/1(在作者后面显示文章数目)
- show_fullname:0(只显示first name)/1(显示full name)
- hide_empty:0(没有文章的作者也显示在名单中)/1(只显示至少有一篇文章的用户)
(四)Wordpress无法编辑分类缩略名(Slug)的解决
前两天在写文章时想添加一个jQuery的分类,创建分类时我把分类名称和缩略名都设置成jQuery,结果发现提交以后缩略名变成了jquery-2这样的形式,当修改分类缩略名(Slug)的时候Wordpress始终提示"分类未更新",亦然保持原有的缩略名。百思不得其解,最终无意在DiggLife这里找到了答案。
原因:造成无法更改分类缩略名的原因很简单,Wordpress 2.3及以上的版本由于引进了标签功能,Wordpress数据库结构发生了变化。链接分类、日志分类和标签被整合到wp_terms表中(这个页面有详细说明).由于分类缩略名必须唯一,所以如果你已经使用了某个词作为标签或者链接分类,那么你将无法将其作为分类缩略名。
解决方案:使用另外一个分类缩略名或者删除那个重复的标签。这就要看哪个损失比较小了,如果你的日志里已经多次链接到这个分类,那么最好删除或者修改标签,反之则修改分类缩略名。(这里需要再提醒一下,如果你为你的的中文标签都设置有缩略名,也要注意它们是否和你现在正在设置的分类缩略名重复)
所以,在建博初期,最好确定所有应该固定下来的链接。比如页面缩略名、分类缩略名、日志永久链接结构等。不然修改起来会非常麻烦,而且会造成不必要的损失。
(五)只针对搜索引擎显示Adsense广告
这个技巧依旧来自于DiggLife。在DiggLife的这篇文章中,以及水煮鱼的《提高Google Adsense收入的三个小技巧》中均提到这样一个观点:
长期浏览你博客的用户其实不会点击你的广告的,所以对于这部分用户显示广告是没有用的,所以最好的办法就是直接给来自搜索引擎的用户显示广告,一般来自搜索引擎的用户特别容易点击广告。所以针对搜索引擎显示Adsense广告,其目的就是为了减少无效展示,提高eCPM,也就是所谓的有效每千次展示的费用。据说eCPM高了,Adsense机器人会自动匹配高单价的广告到你的网页,所以在点击率一定的情况下,提高eCPM是是一种有效提高广告收入的办法。
那么如何只针对搜索引擎显示Adsense广告?DiggLife给出了一个比较完美的解决方案:
<?php $referer = $_SERVER['HTTP_REFERER']; $se = array('google.com/search?', 'baidu.com/s?', 'soso.com/q?'); $adsense = <<<AD adsense代码 AD; foreach ($se as $source) {//将se数组中的每一个值逐一赋给$source if(strpos($referer,$source) !== false){ echo $adsense; } } ?> |
如果你想了解这段代码的更多含义,以及这样写的道理,那你就不妨移步到这里慢慢看。
(六)为Feed 内容添加版权信息
在每篇博文后声明文章的版权,这是很常见的,但是它不会出现在feed订阅中。如果你是城市@后的订阅用户,你就会发现在feed输出中也会有版权的显示。那么如何给你的Feed输出文章中也加入版权声明呢?
很简单,只需在你的主题function.php文件的最后加入如下代码即可:
<?php $notice = '<p>©' . date("Y") . ' <a href="' . get_bloginfo('url') . '">' . get_bloginfo('name') . '</a>. All Rights Reserved.</p>'; add_filter('the_content', 'add_notice'); function add_notice( $content ) { global $notice; if( is_feed() ) { return $content.$notice; } else { return $content; } } ?> |
在你的feed的末尾会显示类似的版权信息:
?2009 城市@后. All Rights Reserved.
当然你还可以用这段代码在你的feed中添加广告代码。