我尝试使用此代码(我在个人博客上找到它)为我的自定义Wordpress主题在一个自定义页面中显示热门帖子。不幸的是,它在这三个UL区块中的每一个都显示相同的帖子。想法是在3天内显示最多观看的帖子,然后在另一个块中显示7天内观看次数最多的帖子,然后在最后一个块中显示30天内观看次数最多的帖子。我现在不知道为什么不工作。
// Top post by views in last 3 day's
<ul>
<?php
function filter_where($where = '') {
$where .= " AND post_date > '" . date('Y-m-d', strtotime('-3 days')) . "'";
return $where;
}
add_filter('posts_where', 'filter_where');
query_posts('post_type=post&posts_per_page=5&orderby=post_views_count&order=DESC');
while (have_posts()): the_post(); ?>
<li><a href="<?php the_permalink(); ?>" title="<?php printf(esc_attr('Permalink to %s'), the_title_attribute('echo=0')); ?>" rel="bookmark"><?php the_title(); ?></a></li>
<?php
endwhile;
wp_reset_query();
?>
</ul>
// Top post by views in last 7 day's
<ul>
<?php
function filter_where2($where = '') {
$where .= " AND post_date > '" . date('Y-m-d', strtotime('-7 days')) . "'";
return $where;
}
add_filter('posts_where', 'filter_where2');
query_posts('post_type=post&posts_per_page=5&orderby=post_views_count&order=DESC');
while (have_posts()): the_post(); ?>
<li><a href="<?php the_permalink(); ?>" title="<?php printf(esc_attr('Permalink to %s'), the_title_attribute('echo=0')); ?>" rel="bookmark"><?php the_title(); ?></a></li>
<?php
endwhile;
wp_reset_query();
?>
</ul>
// Top post by views in last 30 day's
<ul>
<?php
function filter_where3($where = '') {
$where .= " AND post_date > '" . date('Y-m-d', strtotime('-30 days')) . "'";
return $where;
}
add_filter('posts_where', 'filter_where3');
query_posts('post_type=post&posts_per_page=5&orderby=post_views_count&order=DESC');
while (have_posts()): the_post(); ?>
<li><a href="<?php the_permalink(); ?>" title="<?php printf(esc_attr('Permalink to %s'), the_title_attribute('echo=0')); ?>" rel="bookmark"><?php the_title(); ?></a></li>
<?php
endwhile;
wp_reset_query();
?>
</ul>
答案 0 :(得分:0)
orderby
无法识别WP_Query
值(query_posts使用此类)。
您没有提到每次加载帖子时是否添加(和增加)自定义字段post_view_count
。
如果是这种情况,您可以更改query_posts:
add_filter('posts_where', 'filter_where');
$args = array('post_type'=>'post',
'posts_per_page'=>5,
'orderby'=>'meta_value_num',
'order'=>'DESC',
'meta_key'=>'post_views_count'
);
$query = new WP_Query($args);
while ( $query->have_posts() ) {
$query->the_post(); ?>
<li><a href="<?php the_permalink(); ?>" title="<?php printf(esc_attr('Permalink to %s'), the_title_attribute('echo=0')); ?>" rel="bookmark"><?php the_title(); ?></a></li>
<?php
}
wp_reset_query();
继续使用此逻辑进行2次查询。
上找到所有详细信息希望它有所帮助。