您好,
我有来自帖子的图片的自定义字段,我想显示按视图排序的前5个帖子。我正在使用WordPress,你能帮我吗?
抱歉我的英语不好。
感谢。
答案 0 :(得分:4)
Xhynk's reference有一个错误:
它运行的查询按字母顺序返回帖子(1,2,20,23,3,4等)
您只需要更改
'orderby' => 'wpb_post_views_count'
到
'orderby' => 'meta_value_num'
对于前5名,请使用:
$popularpost = new WP_Query(array(
'posts_per_page' => 5,
'meta_key' => 'wpb_post_views_count',
'orderby' => 'meta_value_num',
'order' => 'DESC'
));
答案 1 :(得分:4)
这很容易。只需将此代码用于functions.php
即可/*
* Set post views count using post meta
*/
function setPostViews($postID) {
$countKey = 'post_views_count';
$count = get_post_meta($postID, $countKey, true);
if($count==''){
$count = 0;
delete_post_meta($postID, $countKey);
add_post_meta($postID, $countKey, '0');
}else{
$count++;
update_post_meta($postID, $countKey, $count);
}
}
把single.php
setPostViews(get_the_ID());
这是您热门的帖子查询:
<?php
query_posts('meta_key=post_views_count&posts_per_page=5&orderby=meta_value_num&
order=DESC');
if (have_posts()) : while (have_posts()) : the_post();
?>
<li><a href="<?php the_permalink(); ?>"><?php the_title();
?></a>
</li>
<?php
endwhile; endif;
wp_reset_query();
?>
详细信息go
答案 2 :(得分:2)
基本上它会为每个帖子添加一个元字段 - 并在查看时删除旧记录,然后将其替换为“旧记录+ 1”