• 解決済 namio

    (@namio)


    ・Wordpress 2.7.1、Mysql 5 を使用しています。
    ・プラグインの WP-PostViews 1.40 を使用して、view の多い記事をサイドバーにランキング表示させています。
    ・イベントの情報を扱っていて、未来の日付の記事がたくさんあります。

    wp-postviews.php の中にあった
    WHERE post_date < ‘”.current_time(‘mysql’).”‘ という記述を
    WHERE post_date > ‘”.current_time(‘mysql’).”‘ に書き換えて、
    ランキングの対象になる記事を 「過去~現在」 から 「現在~未来」 に変更することはできました。

    これをさらに 「3日前~未来」 を対象とするように改変したいのですが、どう表記すればよいのかが
    わかりません。初歩的な質問で大変申し訳ないのですが、どうかお力添えお願いいたします。

    改変した行の全文は、

    $most_viewed = $wpdb->get_results("SELECT DISTINCT $wpdb->posts.*, (meta_value+0) AS views FROM $wpdb->posts LEFT JOIN $wpdb->postmeta ON $wpdb->postmeta.post_id = $wpdb->posts.ID WHERE post_date > '".current_time('mysql')."' AND $where AND post_status = 'publish' AND meta_key = 'views' AND post_password = '' ORDER BY views DESC LIMIT $limit");

    となっています。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック投稿者 namio

    (@namio)

    ※書き間違いがあったので、上の投稿を修正しました

    current_time() を使う必要はなくて、MYSQL だけで解決すると思いますけど。
    DATE_SUB(NOW(),INTERVAL 3 DAY) でいいんでは?


    ... WHERE post_date > '".current_time('mysql')."' AND ...
    変更後
    ... WHERE post_date > DATE_SUB(NOW(),INTERVAL 3 DAY) AND ...

    トピック投稿者 namio

    (@namio)

    php-web 様、本当にありがとうございます!
    希望通りの動きになりました!

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「post_dateを「現在の3日前」と比較させたい(WP-PostViews)」には新たに返信することはできません。