我正在创建一个wordpress小部件,以显示过去4天内评论最多的文章。
到目前为止我有这个
global $wpdb;
global $pagepost;
function filter_where( $where = '' ) {
// posts in the last 4 days
$where .= " AND post_date > '" . date('Y-m-d', strtotime('-4 days')) . "'";
return $where;
}
add_filter( 'posts_where', 'filter_where' );
$the_query = new WP_Query( 'posts_per_page=4;orderby=comment_count' );
remove_filter( 'posts_where', 'filter_where' );
?>
<ul>
<?php while ( $the_query->have_posts() ) : $the_query->the_post();
echo "<li>";
echo "<a href='".get_permalink()."' class='linkTitle'>";
echo get_the_title();
echo "</a>";
woo_post_meta();
echo "<div class='fix'>";
echo "</li>";
endwhile;
echo "</ul>";
wp_reset_postdata();
我在wordpress网站上找到的内容应该返回由comment_count命令的过去4天内的文章
但它只是向我展示了我的最后4篇文章,我确信我在这里做了一些非常明显的错误,但我无法得到它
我希望过去4天内发布文章的评论最多的4篇文章。
有人请保存我留下的小头发答案 0 :(得分:3)
感谢@swapnesh我找到了答案。
我的查询不正确,应该是这样的
$the_query = new WP_Query(array( 'posts_per_page' => 4, 'orderby' => 'comment_count', 'order'=> 'DESC' ));
答案 1 :(得分:0)
$ querystr =“ SELECT $ wpdb-&gt; posts。* FROM $ wpdb-&gt;帖子WHERE 1 = 1 AND $ wpdb-&gt; posts.post_status ='publish'AND $ wpdb-&gt; posts.post_type ='post'ORDER BY $ wpdb - &gt; posts.comment_count DESC “;
使用此自定义查询
$ pageposts = $ wpdb-&gt; get_results($ querystr,OBJECT); 回声 '
'; print_r($pageposts); echo'';