1

我正在创建一个 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 篇文章。

有人请保存我剩下的小头发

4

2 回答 2

3

感谢@swapnesh,我找到了答案。

我的查询不正确,应该是这样的

    $the_query = new WP_Query(array( 'posts_per_page' => 4, 'orderby' => 'comment_count', 'order'=> 'DESC' ));
于 2012-05-29T08:33:37.287 回答
0

$querystr = " SELECT $wpdb->posts.* FROM $wpdb->posts WHERE 1=1 AND $wpdb->posts.post_status = 'publish' AND $wpdb->posts.post_type = 'post' ORDER BY $wpdb ->posts.comment_count DESC ";

使用此自定义查询

$pageposts = $wpdb->get_results($querystr, OBJECT); 回声'

'; print_r($pageposts); 回声'
';

于 2016-01-26T06:27:59.410 回答