1

過去 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 に答える