八月 7th, 2008

【WP常用技巧翻译】如何建立Twitter信息栏,受欢迎日志,随机博客统计

795 views, 记忆碎片, by hitigon.

原文地址:How To: Twitter Bar, Popular Posts, Random Stats

WordPress 常用技巧40+则,诚邀您的参与翻译(第37篇)

翻译者:hitigon 水平有限,欢迎纠正文中错误!

转载请注明原文及译文地址,尊重作者劳动,谢谢您的阅读!

每周我会收到一大把邮件,来询问我是怎么在博客上显示Twitter的信息的,也有问我怎么在侧边栏显示“本月最受欢迎日志”及随机博客统计信息。希望这篇文章能够解答这些问题。

Twitter信息栏

首先,Twitter有他们自己的方法用来在你的哦网站上显示你的Twitter信息,但依赖于Twitter主机脚本,通常会影响页面的载入。Alex King的插件Twitter Tools Plugin for WordPress也是这样,一般的共识是它很复杂,需要定制一下才能很好工作就像我的一样。

同样地,我使用Dave Kellam的插件twitterRSS WordPress plugin。它更像一个Hack脚本而不是插件,上次我查看时,没有看到任何管理面板的页面——但它却是工作。它依赖于WordPress内建的RSS程序,用在控制面板内,所以它仅在控制面板更新时才更新……大约每隔一个小时。Dave提到,像一个简单PHP函数一样调用一次这个插件是允许的。然而,我想要详述一下以防你如果偶然禁用了插件你的页面不会被毁坏。

<?php if(function_exists(‘get_twitterRSS’)){get_twitterRSS();} ?>

更新:Mike Malone给这个插件增加了一些新特征,请查看:http://immike.net/scripts/twitterrss.txt

本月最受欢迎日志

在我的侧边栏的“本月最受欢迎日志”模块是按照上个月内文章的评论数量排列的而代替了特殊文章的访问量。我使用了插件most commented,然后修改了SQL查询中时间范围的计算。下面是代码:

<?php
$now = gmdate(“Y-m-d H:i:s”,time());
$lastmonth = gmdate(“Y-m-d H:i:s”,gmmktime(date(“H”), date(“i”), date(“s”), date(“m”)-1,date(“d”),date(“Y”)));
$popularposts = “SELECT ID, post_title, COUNT($wpdb->comments.comment_post_ID) AS ’stammy’ FROM $wpdb->posts, $wpdb->comments WHERE comment_approved = ‘1′ AND $wpdb->posts.ID=$wpdb->comments.comment_post_ID AND post_status = ‘publish’ AND post_date < ‘$now’ AND post_date > ‘$lastmonth’ AND comment_status = ‘open’ GROUP BY $wpdb->comments.comment_post_ID ORDER BY stammy DESC LIMIT 6″;
$posts = $wpdb->get_results($popularposts);
$popular = ”;
if($posts){
foreach($posts as $post){
$post_title = stripslashes($post->post_title);
$guid = get_permalink($post->ID);
$popular .= ‘<li><a href=”‘.$guid.’” title=”‘.$post_title.’”>’.$post_title.’</a></li>’;
}
}echo $popular;
?>

这段代码显示了前六个最受欢迎的日志。你可以通过更改SQL查询中”LIMIT 6″这个位置的数字来修改显示的日志数量。

随机统计

这个变得这么受欢迎,经常被要求是由于Mike Malone停止了制作WordPress插件。我的解决方法相当简单:使用rand()函数获取随机数字,然后给每个数字分派不同的作用。我结束了使用一连串else if语句,但事后发现使用一个switch-case语句可能会更好。

第一个部分显示在建立博客这些日子里所发表的文字总数。我在代码中使用了我的博客的开博日期,所以你需要修改它(我已经在代码中注明此项——译者注)。第二部分显示日志及评论的总数。第三部分显示被Akismet阻拦的垃圾评论数目(我修改了Akismet插件,移除了CSS及图片,仅输出数字)。最后,我留了一个PSTAM.com的链接,但你可以修改成任何内容。代码结构很容易读懂,哪怕你不是个程序高手。

<?php
$var = rand(1,4);
if($var==1){
function word_count(){global $wpdb;$now = gmdate(“Y-m-d H:i:s”,time());$words = $wpdb->get_results(“SELECT post_content FROM $wpdb->posts WHERE post_status = ‘publish’ AND post_date < ‘$now’”);if($words){foreach($words as $word){$post = strip_tags($word->post_content);$post = explode(‘ ‘, $post);$count = count($post);$totalcount = $count + $oldcount;$oldcount = $totalcount;}}else{$totalcount=0;}echo number_format($totalcount + $titlecount);}
word_count(); echo ” words blogged in “.round((time() – strtotime(‘september 8 2005‘))/60/60/24).” days”;
} else if($var==2){
$numposts = $wpdb->get_var(“SELECT COUNT(*) FROM $wpdb->posts WHERE post_status = ‘publish’”);if (0 < $numposts) $numposts = number_format($numposts);$numcomms = $wpdb->get_var(“SELECT COUNT(*) FROM $wpdb->comments WHERE comment_approved = ‘1′”);if (0 < $numcomms) $numcomms = number_format($numcomms);
echo $numposts . ” posts and ” . $numcomms . ” comments”;
} else if($var==3 && function_exists(‘akismet_counter’)){
akismet_counter(); echo ” spam killed by Akismet”;
} else if($var==4){echo “Can’t spell my name? Use “;?><a href=”http://pstam.com”>PSTAM.com</a><?php } ?>

还有任何问题吗?

Back Top

Responses to “【WP常用技巧翻译】如何建立Twitter信息栏,受欢迎日志,随机博客统计”

  1. 没有任何评论。
  1. 没有任何引用。

发表回复

Back Top