我想显示按观看次数排序的最受欢迎的帖子列表。
我想在左边显示小缩略图(在刚调整大小的帖子中使用相同的图像),在右边显示。因此格式化如下:
[#1 Post Title]
[80x80 thumbnail] [excerpt, limit to x chars]
[#2 Post Title]
[80x80 thumbnail] [excerpt, limit to x chars]
[#3 Post Title]
[80x80 thumbnail] [excerpt, limit to x chars]
... up to 5 posts
有可用的插件吗?如果可以通过简单地使用wordpress模板标签来实现,我宁愿使用第三方插件。但对我来说重要的是显示格式,我需要左边的缩略图。
答案 0 :(得分:2)
您可以安装Wordpress popular posts之类的插件。 此插件无法完全按照您的意愿执行,但它会在数据库中记录网页浏览量,您可以通过编写如下代码在主题中使用该数据:
$right_now = gmdate("Y-m-d");
$max_most_read = 5; // Number of "most read-spots"
$qstr = "
SELECT wposts.*
FROM $wpdb->posts wposts,
(select postid, sum(pageviews) pageviews
from $pageviews_table
where day >= '$right_now' - INTERVAL 30 DAY
group by postid) pv
WHERE wposts.post_status = 'publish'
AND wposts.post_type = 'post'
AND wposts.ID = pv.postid
AND wposts.post_date >= '$right_now' - INTERVAL 30 DAY
ORDER BY pv.pageviews DESC
LIMIT 0, " . $max_most_read . "
";
$posts = $wpdb->get_results($qstr);
if ($posts) {
foreach ($posts as $post) {
setup_postdata($post);
$category = get_the_category();
# Now you can use $post->post_content to extract image tag and excerpt
# See http://www.wprecipes.com/how-to-get-the-first-image-from-the-post-and-display-it
# on how to extract and resize first image
}
}
答案 1 :(得分:1)
如果您想尽可能避免使用第三方插件,可能会有所帮助。它确实需要插件 - wp-postiews - 但仅用于存储页面查看次数。完成后,您可以使用下面的代码完全自定义您显示的内容以及排序方式。我使用它的目的和你一样(I wanted to display the thumbnails of the most popular posts in a thumbnail slider)。
现在,假设您想要将帖子显示为列表:
<ul>
<?php echo get_popular_thumb(5); ?>
</ul>
下面将定义函数popularPostsThumb()
(并且您可以更改要显示的帖子数),但会在列表标签<li></li>
内返回列表元素的内容。
现在在functions.php
文件中定义上述功能
function get_popular_thumb($limit=10) {
global $wpdb;
$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_type='post' AND post_date < '".current_time('mysql')."' 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) {
$id = $post->ID;
$post_views = intval($post->views);
$post_title = get_the_title($post);
$post_title = $post->post_title;
$related_thumbnail = get_post_meta($post->ID, "thumbnail_url", $single = true);
$thumb_src = wp_get_attachment_image_src ( get_post_thumbnail_id ( $post->ID ));
if (has_post_thumbnail($id )){
$output .= '<li><a href="' . get_permalink($id) . '" title="'. $post_title . '"><img src="'. $thumb_src[0].'" title="'. $post_title .'"/> </a> </li>';
}
}
}
return $output;}
在此示例中,它只输出图像的缩略图 - 但在<li></li>
标记内,您可以更改HTML以生成您想要的内容(加上一些CSS样式)。你可以很容易地提取帖子的摘录 - 我没有测试它,但像$excerpt= $post->post_excerpt
这样的东西应该有效。(有'整洁'的方式来获取帖子的缩略图 - 但这样你就可以手动编辑<img>
)的标题。
希望这有帮助。
答案 2 :(得分:0)
找到一个完美无缺的plugin。