北极寒流 » 网络资源 » WordPress日志实现图片浏览量排行榜 - 2011.07.05

WordPress日志实现图片浏览量排行榜

WordPress日志实现图片浏览量排行榜。通常博客的热门文章有按浏览来排行的,也有按评论数量来排行的,不过个人还是喜欢按浏览量来排行。但是如果你的博客上有很多图片(或者文章缩略图),那有没想过让你的热门文章实现图片排行呢?毕竟图片显示比单纯的文章显示要直观的多。在 WordPress 中,我们一般用 wp-postviews 插件来统计点击量的多少,这个插件应该是最常用的了,功能很强大,如果你也安装了wp-postviews 插件,那么只要再增加一点代码就可以实现WordPress日志图片排行榜了。

首先把以下代码复制到 WordPress 主题的 functions.php 中:

function most_viewed($mode = '', $limit = 10, $display = true) {
global $wpdb, $post;
$where = '';
$temp = '';
$output = '';
if(!empty($mode) && $mode != 'both') {
$where = "post_type = '$mode'";
} else {
$where = '1=1';
}
$most_viewed = $wpdb->get_results("SELECT DISTINCT $wpdb->posts.*, (meta_value+0) AS views FROM $wpdb->posts LEFT JOIN $wpdb->postmeta ON $wpdb->postmeta.post_id = $wpdb->posts.ID WHERE post_date < '".current_time('mysql')."' AND $where AND post_status = 'publish' AND meta_key = 'views' AND post_password = '' ORDER  BY views DESC LIMIT $limit");
if($most_viewed) {
foreach ($most_viewed as $post) {
$post_title = get_the_title();
if(has_post_thumbnail( intval($post->ID) )){
$timthumb_src = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID),'full');
$post_timthumb = '<img src="'.get_bloginfo("template_url").'/timthumb.php?src='.$timthumb_src[0].'&amp;h=78&amp;w=78&amp;zc=1" alt="'.$post_title.'" />';
$output .= '<li><a class="pic" href="'.get_permalink().'" title="'.$post_title.'">'.$post_timthumb.'</a></li>';
} else {
$post_timthumb = '';
ob_start();
ob_end_clean();
$temp = preg_match('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $index_matches);//获取日志中第一张图片
$first_img_src = $index_matches [1]; //获取该图片 src
if( !empty($first_img_src) ){ //如果日志中有图片
$post_timthumb = '<img src="'.get_bloginfo("template_url").'/timthumb.php?src='.$first_img_src.'&amp;h=78&amp;w=78&amp;zc=1" alt="'.$post_title.'" />';
$output .= '<li><a class="pic" href="'.get_permalink().'" title="'.$post_title.'">'.$post_timthumb.'</a></li>';
} else { //如果日志中没有图片,则显示默认
$post_timthumb = '<img src="'.get_bloginfo("template_directory").'/img/default.gif" />';
$output .= '<li><a class="pic" href="'.get_permalink().'" title="'.$post_title.'">'.$post_timthumb.'</a></li>';
}
}
}
} else {
$output = '<li>N/A</li>'."\n";
}
if($display) {
echo $output;
} else {
return $output;
}
}

然后,在需要的地方可以如下调用:

<?php
echo '<ul>';
most_viewed('post',10,true);
echo '</ul>';
?>

WordPress日志实现图片浏览量排行榜就是这么简单,代码来源:http://wange.im/most-viewed-with-thumbs-for-wordpress.html

05

WordPress日志实现图片浏览量排行榜

分享到: